所以目前我正在尝试使用 National Intruments 和 IVI Foundation 的 VISA 库来读取/写入各种外部设备的命令。
我对我的 IDE 比较陌生:Microsoft Visual C++ Express 2010,这是我第一次尝试使用需要超过 .h 导入的第三方库。
基本上我有一个包含 3 个头文件的目录,一个包含 3 个 .lib 库的目录和一个包含 7 个 DLL 的目录。他们没有关于任何单个文件的功能的文档,只有整个库。因此,我需要能够获取与我的项目关联的所有这些文件。
目前,我已将所有头文件导入到我的头文件中,并将头目录添加到项目属性的包含目录中。我还将包含 .lib 文件的目录添加到项目属性中的库目录中。我假设 .lib 文件会链接到 DLL,但显然情况并非如此,因为我遇到了错误:
VISA Console 2.obj : error LNK2019: unresolved external symbol _viOpenDefaultRM@4 referenced in function _wmain
使用库中的任何函数时都会发生此错误。这是我目前的代码:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
ViStatus status;
ViSession defaultRM, instr;
status = viOpenDefaultRM(&defaultRM);
return 0;
}
项目将在我注释掉 viOpenDefaultRM 命令时生成,因此我认为这意味着我可以使用库中的对象而不是命令。因为我有 3 个构建得很好的对象声明。
好的,这就是我的全部信息,希望有人能提供帮助,也希望这对其他人有帮助!
最佳答案
除了将 .lib 文件的目录添加到库目录属性之外,您还需要添加链接器应搜索的实际库。
将库添加到项目的
Configuration Properties | Linker | Input | Additional Dependencies
字段。
DLL 不是构建过程所必需的,但要运行程序,它们应该位于 PATH
的目录中或与程序文件位于同一目录中。
关于c++ - 使用由 ".h"、 ".lib"和 ".dll"文件组成的第三方库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13976745/