使用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"
}