- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的 CMakeLists.txt:
set(CMAKE_VERBOSE_MAKEFILE ON)
cmake_minimum_required(VERSION 3.8)
project(spider)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
add_executable(spider ${SOURCE_FILES})
target_link_libraries(spider ${Boost_LIBRARIES})
target_link_libraries(spider Threads::Threads)
target_link_libraries(spider
${Boost_PROGRAM_OPTIONS_LIBRARIES}
${Boost_FILESYSTEM_LIBRARIES}
${Boost_SYSTEM_LIBRARIES}
)
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lboost_system -DBOOST_SYSTEM_NO_DEPRECATED" )
这是我在 main.cpp 中的包含文件:
#include <iostream>
#include <boost/array.hpp>
#include <boost/asio.hpp>
using boost::asio::ip::udp;
我尝试下载并构建 boost,这会导致很多麻烦,所以我决定使用 cygwin 安装程序附带的 boost。我的/include 文件夹中确实有 boost_system 和 boost,所以我不必在我的 Cmakelists.txt 中设置 boost:
问题是如何处理错误:
/usr/include/boost/system/error_code.hpp:322: undefined reference to `boost::system::system_category()'
如您所见,我已经尝试了 -lboost_system 和 -DBOOST_SYSTEM_NO_DEPRECATED,标志被传递给 g++:
/usr/bin/c++.exe -lboost_system -DBOOST_SYSTEM_NO_DEPRECATED -g -Wl,--enable-auto-import CMakeFiles/spider.dir/main.cpp.o -o spider.exe -Wl,--out-implib,libspider.dll.a -Wl,--major-image-version,0,--minor-image-version,0
但这并没有帮助。有什么想法吗?
最佳答案
添加
target_link_libraries(spider boost_system)
而不是 SET CMAKE_CXX_FLAGS 到 cmake 文件的末尾修复了这个问题,根本原因是标志应该在最后,正如评论者所指出的那样。
关于c++ - -lboost_system 对 cygwin 上对 `boost::system::system_category()' 的 undefined reference 没有帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45652206/
我有这个抛出异常的代码(非常类似于 what is suggested here): int accept4(int sockfd, sockaddr *addr, socklen_t *addrle
我是 C++ 的新手,但我想在向 Microsoft 报告错误之前确保我没有做错任何事情。 下面是一些示例代码: #include using namespace std; class Test {
obj\Debug\src\SQLite3DB.o||In function _static_initialization_and_destruction_0:| D:\workspace-cpp\b
我正在尝试在使用 Boost 库的 Ubuntu 11.10 上编译一个程序。我安装了 Ubuntu 存储库中的 1.46-dev Boost 库,但在编译程序时出现错误。 对 boost::syst
我正在尝试在使用 Boost 库的 Ubuntu 11.10 上编译一个程序。我安装了 Ubuntu 存储库中的 1.46-dev Boost 库,但在编译程序时出现错误。 对 boost::syst
我正在尝试在 Ubuntu 11.10 上编译一个使用 Boost 库的程序。我安装了 Ubuntu 存储库中的 1.46-dev Boost 库,但在编译程序时出现错误。 对 boost::syst
C++0x 有两个预定义的 error_category对象:generic_category()和 system_category() .据我目前所知,system_category()应该用于操作
我正在尝试编译 library作为依赖项有 boost 。使用 cmake 编译时出现以下错误: ../libdasp/libdasp.so: error: undefined reference t
我正在尝试使用 OS Raspbian Jessie 在树莓派 2 上编译 Ocelot 跟踪器。我已经从 apt 安装了 libboost1.55-dev-all 库。编译时出现多个错误:“对 `b
虽然有很多关于这个的问题,但我找不到正确的方法来解决我的问题。我在我的项目中使用了libboost_system,并添加了Libs: =libconfig++ libboost_thread libb
我已经搜索了很多关于这个问题的答案。我使用的是 boost 1.48 并且程序非常简单,因为我已将其分解为最简单的形式以解决此问题。 #include int main(int argc, char
Boost 并不真正关心 android 开发,所以我决定与其拼命尝试获取 android 的 boost 静态库,不如在我的程序中构建 boost 源代码。 我为我的构建添加了这个定义: DEFIN
这是我的 CMakeLists.txt: set(CMAKE_VERBOSE_MAKEFILE ON) cmake_minimum_required(VERSION 3.8) project(spid
我是一名优秀的程序员,十分优秀!