如何在我自己的DLL中使用和链接boost库

时间:2013-09-20 13:56:53

标签: boost dll

我正在尝试编写一个dll,它基本上将用作我编程设备的接口。我们的想法是让getTemperature()和setTemperature(temp)等函数通过串口发送/接收消息。作为其中的一部分,有一个生产者 - 消费者队列,我想使用boost互斥量和条件变量。

我是dll的新手,并且已经编写了一个编译好的基本dll。当我尝试在另一个程序中使用它时,我在运行它时收到错误消息。我正在使用德国计算机,所以,消息是德语“Das Programm kann nicht gestartet werden,da libboost_system-mgw44-mt-d-1_53.dll auf dem Computer fehlt。Installieren Sie das Programm erneut,um das Problem zu beheben”。我有限的德国人告诉我这个

“程序无法启动,因为无法找到libboost_system-mgw44-mt-d-1_53.dll”

我正在使用MinGW的代码块,并将以下链接库添加到我的DLL项目以及我正在使用DLL的项目

  • E:\升压\ boost_1_53_0 \ bin.v2 \库\ SYSTEM \构建\ GCC-的mingw-4.4.1 \调试\穿线多\ libboost_system-mgw44-MT-d-1_53.dll.a
  • E:\升压\ boost_1_53_0 \ bin.v2 \库\螺纹\构建\ GCC-的mingw-4.4.1 \调试\穿线多\ libboost_thread-mgw44-MT-d-1_53.dll.a
  • USER32

我正在使用以下定义:

  • BUILD_DLL
  • BOOST_ALL_DYN_LINK

我在搜索目录中包含了boost目录

我做错了什么???我想象它与静态和动态链接有关,但是,我没有运气试图修复它

提前致谢

修改

如果我在我的dll中注释掉所有与boost相关的内容并重新编译它,我的程序就可以运行并从打印到终端的DLL中调用一个函数。

编辑2 我没有包含升级库的路径。通过将它们添加到链接器搜索目录,一切运行良好。

1 个答案:

答案 0 :(得分:0)

libboost_system-mgw44-mt-d-1_53.dll是否适用于您的程序?这包括当前的工作目录。