代码之家  ›  专栏  ›  技术社区  ›  n179911

在MacOSX上使用boost库时出现链接错误

  •  2
  • n179911  · 技术社区  · 15 年前

    我已经创建了一个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*
    

    3 回复  |  直到 15 年前
        1
  •  5
  •   Stack Overflow is garbage    15 年前

    添加库路径是不够的。这就确保了每当您告诉它链接到库时,它都会在指定的路径以及所有默认路径中搜索该库。

    -lboost_system-mt
    

    在Windows上,Boost默认支持自动链接——也就是说,如果只包含正确的头,它也会尝试链接到实际的库(通过使用MSVC#pragma)。在其他平台上,您必须手动链接到库。

        2
  •  3
  •   Community CDub    4 年前

    更新:对于Xcode4,您需要为链接器添加.dylib文件。在XCode中,使用“Navigator”窗格中的“Project Navigator”选项。然后单击您的项目,然后单击您的目标,然后选择“构建阶段”选项卡,然后按“链接二进制文件与库”组中的“+”按钮。你需要添加libboost.dylib你试图利用的任何东西。

    Adding Link Binary in XCode4 for Boost

        3
  •  2
  •   Wgaffa    15 年前

    要链接到XCode中的库,请右键单击使用Boost的“目标”,然后选择 显示简介 . 在下面的“链接库”列表中,通过单击+

    希望这有帮助。