c语言 - 无法将 .lib 链接到 VSCode-未定义引用 'DAQmxCreateTask'



使用Visual Code studio构建C代码,并使用来自National Instruments的第三方库文件。我已经包含了头文件NIDAQmx.h"代码。库文件仍然没有链接到我的代码。下面是我的代码:

`#include<stdio.h>
#include"C:Program Files (x86)National 
InstrumentsSharedExternalCompilerSupportCincludeNIDAQmx.h"
TaskHandle taskHandle=0;
int ret=0;
void main()
{
printf("Hello world");
ret=DAQmxCreateTask("task",&taskHandle);
printf("Return for creating task is %dn",ret);
DAQmxStopTask (taskHandle);
DAQmxClearTask(taskHandle);
printf("Task closed ");
}`

任务。Json文件任务

下面:

`{
"tasks": [
{
"type": "shell",
"label": "C/C++: gcc.exe build active file",
"command": "C:\MinGW\bin\gcc.exe",
"args": [
"-g",
"test.c",
"-o",
"test.exe",
"-LC:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\lib32\msvc",
"-lNIDAQmx"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}`

当我运行C代码时,我得到了如下的控制台输出:

**[Running] cd "c:UsersUserDocumentsmy_csrc" && gcc test.c -o test 
&& "c:UsersUserDocumentsmy_csrc"test
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64- 
w64-mingw32/bin/ld.exe: 
C:UsersUserAppDataLocalTempccKqDitK.o:test.c:(.text+0x82): 
undefined reference to `DAQmxCreateTask'
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64- 
w64-mingw32/bin/ld.exe: 
C:UsersUserAppDataLocalTempccKqDitK.o:test.c:(.text+0xae): 
undefined reference to `DAQmxStopTask'
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64- 
w64-mingw32/bin/ld.exe: 
C:UsersUserAppDataLocalTempccKqDitK.o:test.c:(.text+0xbd): 
undefined reference to `DAQmxClearTask'
collect2.exe: error: ld returned 1 exit status
[Done] exited with code=1 in 0.181 seconds**

根据一个论坛的建议,我尝试了一个命令(下面提到)在终端中指定文件路径,没有任何错误:

'PS D:VSCODES> gcc test.c -o test -L"C:Program Files (x86)National 
InstrumentsSharedExternalCompilerSupportClib32msvc" -lNIDAQmx'

当调试C/c++文件,我得到以下消息(VSCode终端):

'***  Executing task: C:MinGWbingcc.exe -g test.c -o test.exe '- 
LC:Program Files (x86)National 
InstrumentsSharedExternalCompilerSupportClib32msvc' -lNIDAQmx 
c:/mingw/bin/../lib/gcc/x86_64-w64- 
mingw32/11.2.0/../../../../x86_64- 
w64-mingw32/bin/ld.exe: skipping incompatible C:Program Files 
(x86)National 
InstrumentsSharedExternalCompilerSupportClib32msvc/NIDAQmx.lib 
when searching for -lNIDAQmx
c:/mingw/bin/../lib/gcc/x86_64-w64- 
mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping 
incompatible C:Program Files (x86)National 
InstrumentsSharedExternalCompilerSupportClib32msvc/NIDAQmx.lib 
when searching for -lNIDAQmx
c:/mingw/bin/../lib/gcc/x86_64-w64- 
mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping 
incompatible C:Program Files (x86)National 
InstrumentsSharedExternalCompilerSupportClib32msvcNIDAQmx.lib 
when searching for -lNIDAQmx
c:/mingw/bin/../lib/gcc/x86_64-w64- 
mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot 
find -lNIDAQmx
c:/mingw/bin/../lib/gcc/x86_64-w64- 
mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping 
incompatible C:Program Files (x86)National 
InstrumentsSharedExternalCompilerSupportClib32msvc/NIDAQmx.lib 
when searching for -lNIDAQmx
collect2.exe: error: ld returned 1 exit status**'

按如下方式编辑任务json文件:

{
"tasks": [
{
"type": "shell",
"label": "C/C++: gcc.exe build active file",
"command": "C:\MinGW\bin\gcc.exe",
"args": [
"-g",
"test.c",
"-o",
"test.exe",
"-LC:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\lib64\msvc",
"-lNIDAQmx"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}

最新更新