- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
我已经编译了 boost,cmake 正常工作,一切都接近正常,但最简单的示例(普通日志记录)无法编译并出现链接器错误。我真的不知道该怎么办。
这是我当前的 CMake 设置
FIND_PACKAGE(Boost 1.54.0 COMPONENTS log log_setup REQUIRED)
...
TARGET_LINK_LIBRARIES(cogtd ${LIBS} ${SDL2_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES})
这是错误日志
C:\MingW64\mingw64\bin\g++.exe -std=c++11 -g -mwindows -Wl,--whole-archive CMakeFiles\cogtd.dir/objects.a -Wl,--no-whole-archive -o cogtd.exe -Wl,--out-implib,libcogtd.dll.a -Wl,--major-image-version,0,--minor-image-version,0 C:\boost_1_54_0\stage\lib\libboost_log-mgw48-mt-d-1_54.dll C:\boost_1_54_0\stage\lib\libboost_log_setup-mgw48-mt-1_54.dll SDLHelper\libSDLHelper.a Event\libEvent.a Component\libComponent.a Error\libError.a -lmingw32 C:\SDL2-2.0.0\x86_64-w64-mingw32\lib\libSDL2main.a C:\SDL2-2.0.0\x86_64-w64-mingw32\lib\libSDL2.dll.a C:\boost_1_54_0\stage\lib\libboost_log-mgw48-mt-d-1_54.dll C:\boost_1_54_0\stage\lib\libboost_log_setup-mgw48-mt-1_54.dll -lmingw32 C:\SDL2-2.0.0\x86_64-w64-mingw32\lib\libSDL2main.a C:\SDL2-2.0.0\x86_64-w64-mingw32\lib\libSDL2.dll.a -lstdc++ -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `SDL_main':
C:\cygwin\home\Cogman\cogtd\build\src/../../src/main.cxx:53: undefined reference to `boost::log::v2s_mt_nt5::trivial::logger::get()'
C:\cygwin\home\Cogman\cogtd\build\src/../../src/main.cxx:53: undefined reference to `boost::log::v2s_mt_nt5::trivial::logger::get()'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::record::reset()':
C:/boost_1_54_0/boost/log/core/record.hpp:153: undefined reference to `boost::log::v2s_mt_nt5::record_view::public_data::destroy(boost::log::v2s_mt_nt5::record_view::public_data const*)'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::record boost::log::v2s_mt_nt5::sources::basic_composite_logger<char, boost::log::v2s_mt_nt5::sources::severity_logger_mt<boost::log::v2s_mt_nt5::trivial::severity_level>, boost::log::v2s_mt_nt5::sources::multi_thread_model<boost::log::v2s_mt_nt5::aux::light_rw_mutex>, boost::log::v2s_mt_nt5::sources::features<boost::log::v2s_mt_nt5::sources::severity<boost::log::v2s_mt_nt5::trivial::severity_level> > >::open_record<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_nt5::keywords::tag::severity, boost::log::v2s_mt_nt5::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2s_mt_nt5::keywords::tag::severity, boost::log::v2s_mt_nt5::trivial::severity_level const> const&)':
C:/boost_1_54_0/boost/log/sources/basic_logger.hpp:457: undefined reference to `boost::log::v2s_mt_nt5::core::get_logging_enabled() const'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::aux::record_pump<boost::log::v2s_mt_nt5::sources::severity_logger_mt<boost::log::v2s_mt_nt5::trivial::severity_level> >::~record_pump()':
C:/boost_1_54_0/boost/log/sources/record_ostream.hpp:278: undefined reference to `boost::log::v2s_mt_nt5::aux::unhandled_exception_count()'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::aux::record_pump<boost::log::v2s_mt_nt5::sources::severity_logger_mt<boost::log::v2s_mt_nt5::trivial::severity_level> >::record_pump(boost::log::v2s_mt_nt5::sources::severity_logger_mt<boost::log::v2s_mt_nt5::trivial::severity_level>&, boost::log::v2s_mt_nt5::record&)':
C:/boost_1_54_0/boost/log/sources/record_ostream.hpp:258: undefined reference to `boost::log::v2s_mt_nt5::aux::stream_provider<char>::allocate_compound(boost::log::v2s_mt_nt5::record&)'
C:/boost_1_54_0/boost/log/sources/record_ostream.hpp:259: undefined reference to `boost::log::v2s_mt_nt5::aux::unhandled_exception_count()'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::aux::record_pump<boost::log::v2s_mt_nt5::sources::severity_logger_mt<boost::log::v2s_mt_nt5::trivial::severity_level> >::auto_release::~auto_release()':
C:/boost_1_54_0/boost/log/sources/record_ostream.hpp:243: undefined reference to `boost::log::v2s_mt_nt5::aux::stream_provider<char>::release_compound(boost::log::v2s_mt_nt5::aux::stream_provider<char>::stream_compound*)'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::sources::multi_thread_model<boost::log::v2s_mt_nt5::aux::light_rw_mutex>::lock_shared() const':
C:/boost_1_54_0/boost/log/sources/threading_models.hpp:74: undefined reference to `boost::log::v2s_mt_nt5::aux::light_rw_mutex::lock_shared()'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::sources::multi_thread_model<boost::log::v2s_mt_nt5::aux::light_rw_mutex>::unlock_shared() const':
C:/boost_1_54_0/boost/log/sources/threading_models.hpp:78: undefined reference to `boost::log::v2s_mt_nt5::aux::light_rw_mutex::unlock_shared()'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::sources::aux::severity_level<boost::log::v2s_mt_nt5::trivial::severity_level>::set_value(boost::log::v2s_mt_nt5::trivial::severity_level)':
C:/boost_1_54_0/boost/log/sources/severity_feature.hpp:135: undefined reference to `boost::log::v2s_mt_nt5::sources::aux::get_severity_level()'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::record boost::log::v2s_mt_nt5::sources::basic_logger<char, boost::log::v2s_mt_nt5::sources::severity_logger_mt<boost::log::v2s_mt_nt5::trivial::severity_level>, boost::log::v2s_mt_nt5::sources::multi_thread_model<boost::log::v2s_mt_nt5::aux::light_rw_mutex> >::open_record_unlocked<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_nt5::keywords::tag::severity, boost::log::v2s_mt_nt5::trivial::severity_level const> >(boost::parameter::aux::tagged_argument<boost::log::v2s_mt_nt5::keywords::tag::severity, boost::log::v2s_mt_nt5::trivial::severity_level const> const&)':
C:/boost_1_54_0/boost/log/sources/basic_logger.hpp:260: undefined reference to `boost::log::v2s_mt_nt5::core::open_record(boost::log::v2s_mt_nt5::attribute_set const&)'
CMakeFiles\cogtd.dir/objects.a(main.cxx.obj): In function `boost::log::v2s_mt_nt5::core::push_record(boost::log::v2s_mt_nt5::record&&)':
C:/boost_1_54_0/boost/log/core/core.hpp:308: undefined reference to `boost::log::v2s_mt_nt5::core::push_record_move(boost::log::v2s_mt_nt5::record&)'
collect2.exe: error: ld returned 1 exit status
src\CMakeFiles\cogtd.dir\build.make:130: recipe for target 'src/cogtd.exe' failed
make.exe[2]: *** [src/cogtd.exe] Error 1
make.exe[2]: Leaving directory 'C:/cygwin/home/Cogman/cogtd/build'
CMakeFiles\Makefile2:94: recipe for target 'src/CMakeFiles/cogtd.dir/all' failed
make.exe[1]: *** [src/CMakeFiles/cogtd.dir/all] Error 2
make.exe[1]: Leaving directory 'C:/cygwin/home/Cogman/cogtd/build'
Makefile:118: recipe for target 'all' failed
make.exe: *** [all] Error 2
Boost 被编译为使用动态库。
我使用的是 Boost-1.54、Mingw-w64 4.8.1 rev 5(x64 seh posix 版本)和 Cmake 2.8.11 我试过静态链接无济于事。
我已经开始使用 MinGW/MSYS 试图在 Windows 上使用一些 Linux 库。使用 ./configure --prefix=/mingw make make install 到目前为止运
Mingw.org显然还没有完全死掉,但最新的版本是 gcc 4.5.2,而 4.6 已经是老新闻了。 有谁知道我在哪里可以获得 mingw-gcc 4.6+?是 mingw-w64更活跃?他们似乎也
假设我有三个 C 源文件。前两个是 LIB(lib*.a?),第三个是使用它们的应用程序。 第一个是(re.c): int re(int i) { return i; } 第二个是(test.
MinGW、MinGW-w64和MinGW-builds有什么区别? 我应该使用哪一个在 Windows 8 机器上使用 Eclipse IDE 编译 c++ 11 源代码? 最佳答案 MinGW 是
至少从2021-01-10T15:19:40Z起,我无法访问www.mingw.org。 据我所知,这是mingw官方网页。 有人知道www.mingw.org的状态吗?或者,还有其他套房问这个问题吗
MinGW 有什么区别项目和 32-bit portion MinGW-w64的项目? MinGW-w64 的 32 位部分与 x64 有任何关系吗? 看起来他们的编译器做了完全相同的事情......
我想在 Windows 中有一个 POSIX 环境(用作系统 shell ),同时生成 native Windows 可执行文件。过去的一种选择是安装 Cygwin 和 MinGW,并可能从 Cygw
Qt 和 Code blocks 下载包都有自己的 MinGW 编译器。还有独立的 MinGW 本身。它们之间有什么区别吗? 我可以使用 Qt 的 MinGW 来构建代码块项目,反之亦然吗? 如果我想
我已经通过网络安装程序安装了 msysgit。我最终得到了将近 2 GB 的资料,其中包括 git 源和 MinGW。 我有三个问题 我已经从 MinGW.org 获得了 MinGW。现在我想我可以删
我终于设置了 mingw 和 msys,现在我想编译 libjpeg。我从 projekt 页面 (jpeg-8d) 下载了最新的 libjpeg 源并提取了文件。 然后我像这样运行配置命令: ./c
我喜欢 vcpkg 的想法,但我想我更愿意坚持使用 MinGW 作为我的编译器。 我找不到关于我是否可以设置(或如何设置)vcpkg 以便它为 MinGW 而不是 MSVC 编译包的任何资源。如果可能
我将在 Windows 中使用 NetCDF,我认为它必须使用 MinGW 编译,因为我的主程序和所有其他库已经使用 MinGW 编译。 但是当我使用 MinGW(gcc 版本 4.6.2)时。我收到
我正在尝试设置 MinGW。我已经下载了最新的安装程序,它安装了 mingw-get,但该实用程序无法获取软件包并提供以下类型的消息: mingw-get: * ERROR * Get package
我想使用 mingw-get-inst-20120421.exe 从 Sourceforge 下载 MinGW C 和 C++ gnu 编译器。它让我可以选择下载预先打包的存储库或最新的存储库。当我在
我刚刚按照 this post 设置了 MinGW 环境 但是如何向其中添加 3rd 方库? 最佳答案 库由两个主要组件组成——C 头文件和编译后的目标代码存档。 GCC 有一系列令人眼花缭乱的方法来
我不断收到错误: fatal error: mpi.h: No such file or directory 如何将 mpi.h 作为默认库包含在内?我相信我已经将 c:\MPICH2\bin 放在
看我有这样的代码 #include #include #include void* thread_function(void) { printf ("This is thread %d \n",p
如何使用 Mingw 在 Windows 中为源目录应用补丁文件? 最佳答案 使用mingw-get获取msys补丁 mingw-get install msys-patch 然后像unix一样使用p
我正在尝试使用来自 http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%
我刚刚在 Windows 上安装了 MinGW,但无法像在 Linux 甚至 PuTTY 上那样进行复制/粘贴。将文本(例如从 chrome)复制并粘贴到 MinGW shell 中的技巧是什么? 最
我是一名优秀的程序员,十分优秀!