代码块、MinGW、Boost 和静态链接问题
Posted
技术标签:
【中文标题】代码块、MinGW、Boost 和静态链接问题【英文标题】:Code Blocks, MinGW, Boost, and static linking issues 【发布时间】:2010-09-14 01:26:17 【问题描述】:我正在使用带有 MinGW 的代码块,并正在尝试使用静态链接编译一个简单的程序。我已经使用these directions 构建了 Boost 库。一切正常,我能够成功编译这个简单的程序(它编译,我知道它不起作用,因为它在消息发送到控制台之前退出,但我只想编译它)。
如果我的链接器库中有一个 DLL,它可以正常编译,但是当我使用相同内容的静态 .a 库切换它时,我会得到未定义的引用,例如“对 `_imp___ZN5boost6threadD1Ev'| 的未定义引用”。
我不知道问题出在哪里,也找不到解决方案。我认为这可能与链接器设置有关,但我找不到有关如何更改它们的信息。如果能提供任何帮助,我将不胜感激。
#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】:当标头配置为动态链接时,尝试静态链接。我在 this question 中为 libssh 解释了这一点。在boost/thread/detail/config.hpp
中闲逛让我觉得你应该#define BOOST_THREAD_USE_LIB
,或者使用-D
标志来做同样的事情。
【讨论】:
以上是关于代码块、MinGW、Boost 和静态链接问题的主要内容,如果未能解决你的问题,请参考以下文章