Pic*_*hat 25 c++ boost g++ ubuntu-12.04
我正在尝试编译代码,我得到错误
未定义的引用
boost::program_options::options_description::m_default_line_length
我在Ubuntu 12.04中使用g ++.虽然我已经完成了一些C++编程,但我还不熟悉Linux开发环境(之前只使用过IDE).
所以我对这个问题做了基本的搜索,发现了一些链接问题.因为我是新手,所以我不太了解他们.阅读其中一些解决方案让我更加困惑.我的boost库文件夹在/usr/include
.一些解决方案说它应该在/usr/lib
.但我没有任何提升文件夹.
我需要改变什么?
Nee*_*asu 29
如果您已经从repo安装了boost,那么只需使用即可-lboost_program_options
.
如果您在其他库中安装了boost库,则需要指定directoty-L/path/to/lib
在CMake中,您可以指定 set(CMAKE_CXX_FLAGS "-lboost_program_options")
但是使用CMake你应该使用
FIND_PACKAGE(Boost COMPONENTS program_options REQUIRED)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(target ${Boost_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)
C++11 标准中的类发生了更改<string>
,可能与使用非 C++11 编译器(例如 G++-4.8)编译的 Boost 库版本发生冲突。尝试重新编译 boost 或使用用于编译 Boost 库的 C++ 编译器版本。
boost 库(以 .so 和 .a 结尾的文件)在哪里?找到这些,然后将其添加到链接命令中:-L/path/to/boost/libs -lname-of-boost-lib
这一定是人们刚开始使用 c++ 时面临的最常见的问题。SO 上可能还有一千个其他未定义的参考问题。只需搜索未定义的参考即可。
归档时间: |
|
查看次数: |
30082 次 |
最近记录: |