在Xcode中,我链接了一些我构建的Boost库。它们的链接在发行时没有问题,但在调试时会产生此链接错误;
Undefined symbols for architecture x86_64:
"boost::system::detail::generic_category_instance"
这是我用来构建Boost 1.66的命令行
./b2 install --build-type=complete --build-dir=./build --layout=tagged toolset=clang cxxflags="-std=c++14 -stdlib=libc++" linkflags="-stdlib=libc++";
这将生成一组单独的库,用于调试和发布。 在调试库中链接调试库会产生错误,而发布库会很好地生成(即使在发布库中使用调试库也能很好,但是使用发布库进行调试会产生相同的错误)
我的Xcode项目是使用cmake
生成的,在其中我设置了相同的cxxflags。
我尝试链接.a
或.dylib
或Boost库的静态版本具有相同的结果。
这是我当前正在使用的库
system
filesystem
program-options
我是Xcode的新手,正在Mac上进行开发,因此我可能会遗漏一些明显的东西。
如果我使用Homebrew获得boost 1.68并在发行版中进行链接或调试时链接到库,则它们可以很好地构建/链接,所以可能有一个选项我设置错了。