“图书馆没有符号”是什么意思?

时间:2017-05-23 01:03:21

标签: c++ compilation cmake linker

我正在使用CMake构建我的项目所需的一些依赖库。它们是Boost_system,Boost_filesystem和Boost_program_options。我正在单独编译静态库,而不是编译整个Boost库。

一切正常,但我收到了以下警告信息:

...
[ 67%] Building CXX object filesystem/CMakeFiles/filesystem.dir/src/utf8_codecvt_facet.cpp.o
[ 70%] Building CXX object filesystem/CMakeFiles/filesystem.dir/src/windows_file_codecvt.cpp.o
[ 74%] Linking CXX static library libfilesystem.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libfilesystem.a(windows_file_codecvt.cpp.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libfilesystem.a(windows_file_codecvt.cpp.o) has no symbols
[ 74%] Built target filesystem
[ 77%] Building CXX object CMakeFiles/canalogsmp.dir/src/Array2D.cpp.o
...

我的问题是:

  • 符号是什么?警告信息意味着什么?
  • 如何摆脱此警告消息?

1 个答案:

答案 0 :(得分:1)

感谢nakiya,我找到了答案。

警告信息的解释是here

提供解决方案here。确保将标志传递给ranlib而不是编译器本身。