最近我为我的项目找到了一个动态链接库。可以在这里找到。但是,我真的很难让它工作。我下载的是一个 .dll 文件和一些 .h 头文件。我的 IDE 是 Qt SDk 1.2(Qt 4.8.1)。
编译演示代码后,我的编译器抱怨“由于 'dllexport' 属性,符号 'Ped::LIBPEDSIM_VERSION' 需要外部链接”
它在 ped_includes.h 中。所以经过一番搜索,我在文件中添加了 extern "C++"。现在看起来像这样:
#ifndef _ped_includes_h_
#define _ped_includes_h_ 1
#include "ped_agent.h"
#include "ped_obstacle.h"
#include "ped_waypoint.h"
#include "ped_scene.h"
extern "C++" //what I added.
namespace Ped {
const double LIBEXPORT LIBPEDSIM_VERSION = 2.2;
}
#endif
这次错误消失了,我得到了很多“未定义的对 XX::XX::XX()的引用”错误。我试图将 dll 的路径添加到 .pro 文件中:
LIBS += -LE:\\klive\\code\\QtProgram\\libpedsim-example\\libpedsim.dll
但它不起作用。
现在我想知道的是我是否正确修改了'ped_includes.h',有没有extern语句有什么区别?另外,如何解决联动错误?