[英]Issues linking boost libraries with Xcode 6.1.1 on Yosemite mac
[英]Linker errors with Boost on Mac (OSX 10.10.02 | Xcode 6.1.1)
最近我開始在Windows上使用Boost進行項目。 它需要是跨平台的,所以我也在Mac上安裝它。 不幸; 每當我將它添加到Xcode項目時,它都會給我一大堆鏈接器錯誤和轉換警告。
其中一個鏈接器錯誤的示例:
架構x86_64的未定義符號:
“boost :: system :: system_category()”,引自:main.o中的___cxx_global_var_init2:main.o中的boost :: asio :: error :: get_system_category()在main中的boost :: system :: error_code :: error_code()的.o “升壓::系統:: generic_category()”,從引用:___cxx_global_var_init在main.o中___cxx_global_var_init1在main.o中LD:符號(多個)未找到架構x86_64的鐺:錯誤:連接器命令,退出代碼1失敗(使用-v查看調用)
其中一個轉換警告的示例:
在文件從/usr/local/Cellar/boost/1.57.0/include/boost/date_time/posix_time/posix_time_types.hpp:16包括:/usr/local/Cellar/boost/1.57.0/include/boost/date_time/ posix_time / posix_time_duration.hpp:24:21:警告:隱式轉換失去整數精度:'long'到'hour_type'(又名'int')[ - Wortort-64-to-32] time_duration(h,0,0)
我嘗試了幾種安裝方法和配置方法,但它仍然無法正常工作。
這些是我的步驟:
編譯選項我嘗試過:
我試過的配置選項:
如果有人能指出我正確的方向,我會非常感激。 我認為這是Xcode相關的東西,因為所有編譯版本都給我相同的錯誤。
我找到了答案。 將標題和庫路徑添加到項目搜索路徑后,您需要轉到“構建階段”。 在那里,您需要將所需的各個庫添加到“鏈接庫到二進制”子部分。 您可以在lib文件夾中找到必要的文件(在boost文件夾中)。
您可以選擇擴展名為.a或擴展名為.mt.dylib的庫文件。 如果選擇.a擴展名文件,則庫將添加到程序的編譯版本中。 如果選擇.mt.dylib文件,則庫不會添加到已編譯的程序中。 在這種情況下,您假設動態庫文件已經存在於運行該程序的計算機上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.