我创建了一个XCode项目,我已将“/ opt / local / include / boost”添加到页眉搜索路径,将“/ opt / local / lib”添加到库搜索路径
但我仍然有这个错误:
boost::system::get_generic_category()", referenced from: __static_initialization_and_destruction_0(int, int)in main.o __static_initialization_and_destruction_0(int, int)in main.o __static_initialization_and_destruction_0(int, int)in main.o
在我的/ opt / local / lib中,我发现了这个(我假设是Boost.System库):
-rw-r--r-- 2 root admin 80600 Jul 23 16:31 libboost_system-mt.a -rwxr-xr-x 2 root admin 30988 Jul 23 16:30 libboost_system-mt.dylib*
你能告诉我我错过了什么吗?
答案 0 :(得分:5)
添加库路径是不够的。这只是确保无论何时告诉它链接到库,它都会在指定的路径中搜索该库以及所有默认路径。
因此,您还需要实际告诉编译器使用标志
链接到库-lboost_system-mt
在Windows上,Boost默认支持自动链接 - 也就是说,如果只包含正确的标题,它也会尝试链接到实际的库(通过使用MSVC #pragma)。在其他平台上,您必须手动链接到库。
答案 1 :(得分:3)
更新:对于XCode 4,您需要为链接器添加.dylib文件。在XCode中,使用“导航器”窗格中的“项目导航器”选项。然后单击您的项目,然后单击您的目标,然后选择“Build Phases”选项卡,并按“Link Binary With Libraries”组中的“+”按钮。你需要添加你想要使用的libboost_ .dylib。
答案 2 :(得分:2)
要链接到XCode中的库,请右键单击使用Boost的“目标”,然后选择获取信息。在下面的列表“链接库”中,单击+
添加boost dylib文件希望这会有所帮助。