所以目前我正在尝试使用National Intruments和IVI Foundation的VISA库来读取/写入各种外部设备的命令。
我对我的IDE相对较新:Microsoft Visual C ++ Express 2010,这是我第一次尝试使用需要超过.h导入的第三方库。
基本上我有一个包含3个头文件的目录,一个包含3个.lib库的目录和一个包含7个DLL的目录。他们没有关于任何单个文件的文档,只有整个库。所以,我需要能够获得与我的项目相关的所有这些文件。
目前,我在头文件中导入了所有标头,并将标头目录添加到项目属性中的include目录中。我还有一个目录,其中包含添加到项目属性中库目录的.lib文件。我假设.lib文件会链接到DLL,但显然情况并非如此,因为我收到了错误:
VISA Console 2.obj:错误LNK2019:函数_wmain中引用的未解析的外部符号_viOpenDefaultRM @ 4
使用库中的任何功能时会发生此错误。这是我目前的代码:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
ViStatus status;
ViSession defaultRM, instr;
status = viOpenDefaultRM(&defaultRM);
return 0;
}
当我注释掉viOpenDefaultRM命令时,项目将构建,所以我认为这意味着我可以使用库中的对象而不是命令。因为我有3个对象声明构建得很好。
好的,这是我的全部信息,希望有人可以提供帮助,并希望这有助于其他人!
答案 0 :(得分:5)
除了将.lib文件的目录添加到库目录属性之外,还需要添加链接器应搜索的实际库。
将库添加到项目的
Configuration Properties | Linker | Input | Additional Dependencies
字段。
构建过程不需要DLL,但是要运行程序,它们应该位于PATH
目录中或与程序文件位于同一目录中。
答案 1 :(得分:1)
您是否已向项目属性添加了其他依赖项?
在“Linker-> Input”下找到“Additional Dependencies”并在那里放置你从中获取的库