c++ - 代码块、MinGW、Boost 和静态链接问题

标签 c++ boost static mingw codeblocks

我正在将代码块与 MinGW 一起使用,并试图获得一个简单的程序来使用静态链接进行编译。我使用 these directions 构建了 Boost 库.一切顺利,我能够成功编译这个简单的程序(它编译了,我知道它不起作用,因为它在消息发送到控制台之前退出,但我只是想让它编译)。

如果我的链接器库中有一个 DLL,它可以正常编译,但是当我将它与具有相同内容的静态 .a 库切换时,我会得到 undefined reference ,例如“对 `_imp___ZN5boost6threadD1Ev' 的 undefined reference ”。

我不知道问题出在哪里,也找不到解决方案。我认为这可能与链接器设置有关,但我找不到有关如何更改它们的信息。如果能提供任何帮助,我将不胜感激。

#include <iostream>
#include <boost/thread.hpp>

void myfunction()
{
    std::cout << "this is a thread" << std::endl;
    return;
}

int main()
{
    boost::thread mythread(&myfunction);
    return 0;

}

最佳答案

这是由于在为动态链接配置​​ header 时尝试静态链接。我在 this question 中为 libssh 解释了这一点.在 boost/thread/detail/config.hpp 中翻找让我觉得你应该 #define BOOST_THREAD_USE_LIB,或者使用 -D 标志来做一样。

关于c++ - 代码块、MinGW、Boost 和静态链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3705563/

相关文章:

c++ - 使用 STL 算法缓存复杂的比较函数?

c++ - 存储在结构中的元素是否彼此相邻

c++ - 为什么泛型编程设计更喜欢自由函数而不是成员函数?

c++ - count_until 和 accumulate_until 的实现?

C++,boost asio,接收空终止字符串

python - 如何使用派生的 Python swigged 对象访问 C++ 基类函数?

C++数组意外错误

c++ - 对静态常量结构的 undefined reference

c++ - 类的非静态成员函数的函数指针

c++ - 私有(private)静态变量