我想在我的项目中使用boost.asio头,但是当我包含它的.hpp文件时,我在编译时遇到了这个输出错误:
- 我需要用于乌鸦的boost.asio来路由我的网络请求 .
/home/john/Downloads/clion-1.2.4/bin/cmake/bin/cmake --build /home/john/.CLion12/system/cmake/generated/a3f08900/a3f08900/Release --target rcp - -j 8 [50%]链接CXX可执行文件/ home / john / projects / rightChoiceProperty / bin / rcp CMakeFiles / rcp.dir / main.cpp.o:函数 _GLOBAL__sub_I_main': main.cpp:(.text.startup+0x53): undefined reference to
boost :: system :: generic_category()'main.cpp :( .text.startup 0x58):未定义引用 boost::system::generic_category()' main.cpp:(.text.startup+0x5d): undefined reference to
boost :: system :: system_category()' main.cpp:(.text.startup+0x62): undefined reference to `boost::system::system_category()' collect2:错误:ld返回1退出状态CMakeFiles / rcp.dir / build.make:94:目标'/home/john/projects/rightChoiceProperty/bin/rcp'的配方失败make [3 ]: *** [/home/john/projects/rightChoiceProperty/bin/rcp] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/rcp.dir/all' failed make[2]:** [CMakeFiles / rcp.dir / all]错误2 CMakeFiles / Makefile2:79:目标的配方'CMakeFiles/rcp.dir/rule'失败make [1]: **** **[CMakeFiles/rcp.dir/rule] Error 2 Makefile:118: recipe for target 'rcp' failed make: *** [rcp]错误2
我使用CLion 1.2.4作为IDE这是我的main.cpp内容:
#include <iostream>
#include <boost/asio.hpp>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
return 0;
}
这是我的CMakeLists.txt文件内容:
cmake_minimum_required(VERSION 3.3)
project(rcp)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lboost_system")
set(SOURCE_FILES main.cpp)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
include_directories("libraries/boost")
add_executable(rcp ${SOURCE_FILES})
非常感谢
1 回答
-l
选项不是编译器选项,它是链接器选项,因此您将其设置为错误的变量,因为CMAKE_CXX_FLAGS
仅适用于编译器 .而是使用例如target_link_libraries添加库 . 喜欢
但你真正应该做的是找到系统安装的Boost库并使用它们 . 你用find_package做到了: