gpt4 book ai didi

c++ - 添加 boost/asio 时未定义对 `boost::system::generic_category()' 的引用

转载 作者:行者123 更新时间:2023-11-28 02:12:35 26 4
gpt4 key购买 nike

我想在我的项目中使用 boost.asio header ,但是当我包含它的 .hpp 文件时,我在编译时遇到了这个输出错误:

  • 我需要 boost.asio 来让 crow 路由我的网络请求。

    /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/rcpCMakeFiles/rcp.dir/main.cpp.o: 在函数 _GLOBAL__sub_I_main' 中:
    main.cpp:(.text.startup+0x53): undefined reference
    boost::system::generic_category()'main.cpp:(.text.startup+0x58): 未定义对 boost::system::generic_category() 的引用
    main.cpp:(.text.startup+0x5d): undefined reference
    boost::system::system_category()'main.cpp:(.text.startup+0x62): 对 `boost::system::system_category()' 的 undefined reference collect2:错误:ld 返回 1 退出状态CMakeFiles/rcp.dir/build.make:94: 目标 '/home/john/projects/rightChoiceProperty/bin/rcp' 的配方失败make[3]: * [/home/john/projects/rightChoiceProperty/bin/rcp] 错误 1CMakeFiles/Makefile2:67: 目标 'CMakeFiles/rcp.dir/all' 的配方失败make[2]: [CMakeFiles/rcp.dir/all] 错误 2CMakeFiles/Makefile2:79: 目标 'CMakeFiles/rcp.dir/rule' 的配方失败make[1]: [CMakeFiles/rcp.dir/rule] 错误 2Makefile:118: 目标 'rcp' 的配方失败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})

非常感谢

最佳答案

-l 选项不是编译器选项,它是一个链接器 选项,因此您将它设置为错误的变量 CMAKE_CXX_FLAGS 仅适用于编译器。

而是使用例如target_link_libraries添加库。喜欢

target_link_libraries(rcp boost_system)

但是您真正应该做的是找到系统安装的 Boost 库并使用它们。你用 find_package 做到这一点:

find_package(Boost
REQUIRED COMPONENTS asio system)

include_directories(${Boost_INCLUDE_DIRS})
target_link_libraries(rcp ${Boost_LIBRARIES})

关于c++ - 添加 boost/asio 时未定义对 `boost::system::generic_category()' 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35154639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com