0

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

我是 dll 和 boost 的新手,并且已经编写了一个可以正常编译的基本 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贝赫本”。我有限的德语告诉我这个

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

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

  • E:\boost\boost_1_53_0\bin.v2\libs\system\build\gcc-mingw-4.4.1\debug\threading-multi\libboost_system-mgw44-mt-d-1_53.dll.a
  • E:\boost\boost_1_53_0\bin.v2\libs\thread\build\gcc-mingw-4.4.1\debug\threading-multi\libboost_thread-mgw44-mt-d-1_53.dll.a
  • 用户 32

我正在使用以下定义:

  • BUILD_DLL
  • BOOST_ALL_DYN_LINK

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

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

提前致谢

编辑

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

编辑 2 我没有包含到 boost 库的路径。通过将它们添加到链接器搜索目录中,一切正常。

4

1 回答 1

0

libboost_system-mgw44-mt-d-1_53.dll 是否在您的程序的路径上?这包括当前工作目录。

于 2013-09-20T14:09:18.707 回答