代码块,MinGW,Boost和静态链接问题

时间:2010-09-14 01:26:18

标签: c++ boost static mingw codeblocks

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

如果我的链接器库中有一个DLL,它编译得很好,但当我用相同内容的静态.a库切换它时,我得到未定义的引用,例如“未定义引用`_imp ___ ZN5boost6threadD1Ev'|”。 / p>

我不知道问题是什么,也无法找到解决方案。我认为这可能与链接器设置有关,但我找不到有关如何更改它们的信息。我将非常感谢可以提供的任何帮助。

#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;

}

1 个答案:

答案 0 :(得分:10)

当为动态链接配置​​标头时,尝试静态链接。我在this question中为libssh解释了这一点。在boost/thread/detail/config.hpp中进行调整让我觉得你应该#define BOOST_THREAD_USE_LIB,或者使用-D标志来做同样的事情。