使用签证编译 dll / exe - 链接失败
Compile dll / exe using visa - linking fails
我更像是一个 c++ 菜鸟。我想使用签证创建一个dll。我将问题简化为exe示例。我有以下 MnWE:
#include <cstdlib>
#include <sstream>
#include <string>
#include <iostream>
#include <stdio.h>
#include <stdexcept>
#include <windows.h>
#include "visa.h"
using namespace std;
ViSession defaultRM = 0;
//opens VI-Session in specific address. Puts the defaultRM stuff "away".
void openVI (char* adress, ViSession vi, string mode, int timeout){
if(defaultRM == 0){
viOpenDefaultRM(&defaultRM);// Initialize VISA system
if(defaultRM==0){
cerr << "initalizing defaultRM failed";
}else{
cout << "defaultRM initalized";
}
}else{
}
ViAccessMode viMode = VI_NULL;
ViUInt32 viTimeout = VI_NULL;
if(mode == "EXCLUSIVE"){
viMode = VI_EXCLUSIVE_LOCK;
viTimeout = timeout;
}else if(mode == "DEFAULT"){//Code für default kann hier eingefügt werden. Derzeit nichts vorgesehen.
}else{
}
viOpen(defaultRM, adress, viMode, viTimeout, &vi);
}
int main(){
ViSession vi;
openVI("ASRL2::INSTR", vi, "DEFAULT", 0);
if(vi = 0){
cout << "failed" << endl;
}else{
cout << "success" << endl;
}
return 0;
}
使用 gcc 和命令编译时
g++ -static -o VITest.exe VITest.cpp
我收到以下错误:
F:UsersgabrielAppDataLocalTempccEx2dRK.o:VITest.cpp:(.text+0x17): undefined reference to `viOpenDefaultRM@4'
F:UsersgabrielAppDataLocalTempccEx2dRK.o:VITest.cpp:(.text+0xbd): undefined reference to `viOpen@20'
collect2.exe: error: ld returned 1 exit status
就我的谷歌给我带来而言,这似乎与链接到库有关。我的电脑上还没有安捷伦签证分发。我只是将 visa.h、visadef.h 和 visa.lib 放入与 cpp 文件相同的文件夹中。我想,它可能与此有关。但我只想在绝对必要时安装它。最终程序将在另一台计算机上运行。
您没有将库包含在编译中。将g++
行更改为:
g++ -static -o VITest.exe VITest.cpp -L. -lvisa
相关文章:
- Visual Studio mkl_link_tool.exe链接错误
- 如何链接 DLL 以供 LoadLibrary() 使用(在 Windows 上的 C++ 中)并从调用 exe 导入变
- 重建 exe 时如何自动链接新的静态库而不更改源文件?
- 在动态链接中,.exe如何知道在更新库时在哪里搜索库?
- 是否有 gcc 命令可以链接同一目录中的所有 .o 文件并生成.exe文件
- Vscode C++调试使用 cl.exe 和 / 链接构建的代码.exe - 调试器不附加
- 如何修复链接器错误"mingw32/bin/ld.exe: cannot find -lSDL"?
- 在 Win 7 SP 中创建 exe vcxproj:过程入口点<function>无法位于动态链接库中KERNAL32.dll
- 使用签证编译 dll / exe - 链接失败
- Exe 在库更改时执行完全链接,尽管存在增量链接
- 配置 Qt .pro 文件以使用 cl.exe 和 link.exe 来修复链接错误
- Visual Studio 中引用的 exe 项目上的链接器错误
- 将静态库与另一个静态库链接,并在exe中使用主库
- 链接 Visual C++ 项目 (VS 2010) 会导致错误MSB6006:"link.exe"退出代码1073741515
- 使用mingw链接静态库(a)到exe
- 我应该使用哪些编译选项来使用cl.exe与Boost链接
- 链接器诊断:"exe not found or not built by the last incremental link; performing full link",为什么?
- C++ 一个解决方案两个项目(EXE & DLL)链接错误
- 懒惰的程序员将vbscript/hta文件包装在一个独立的静态链接的c++ exe中
- g++.exe[警告]链接器输入文件未使用,因为链接未完成