&引用;未定义的引用;在gcc编译器中

&引用;未定义的引用;在gcc编译器中,c,gcc,cmake,C,Gcc,Cmake,我在CMakelist.txt文件中添加了parson.lib文件。请帮助我如何解决此问题 下面是我的示例c程序代码,用于在控制台中读取要打印的json文件 #include<stdio.h> #include<parson.h> int ReadConfiguration() { JSON_Value *root_value; root_value = json_parse_file("example.json"); JSON_O

我在CMakelist.txt文件中添加了parson.lib文件。请帮助我如何解决此问题

下面是我的示例c程序代码,用于在控制台中读取要打印的json文件

#include<stdio.h>
#include<parson.h>

int ReadConfiguration() {

  JSON_Value *root_value;

  root_value = json_parse_file("example.json");

  JSON_Object* objs = json_value_get_object(root_value);

  printf("input port number is %d",json_object_get_number(objs, "inputPortNumber"));
  printf("output port number is %d",json_object_get_number(objs, "outputPortNumber"));

  return 1;
}

int main(){
  printf("printing all the configuration data");
  return ReadConfiguration();
// return 0;
}
我的错误是

[proc] Executing command: C:\msys64\mingw64\bin\cmake.exe --build d:/VSCode/samples/build --config 
Debug --target all -- -j 10
[build] Consolidate compiler generated dependencies of target sample
[build] [ 50%] Linking C executable sample.exe
[build] Warning: corrupt .drectve at end of def file
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x2c): undefined reference to `_dclass'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0xa): undefined reference to `__security_cookie'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x3c): undefined reference to `__security_check_cookie'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x5a): undefined reference to `sprintf'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x18): undefined reference to `_dclass'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.xdata[$unwind$json_serialization_size]+0x8): undefined reference to `__GSHandlerCheck'
[build] collect2.exe: error: ld returned 1 exit status
[build] mingw32-make[2]: *** [CMakeFiles\sample.dir\build.make:99: sample.exe] Error 1
[build] mingw32-make[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/sample.dir/all] Error 2
[build] mingw32-make: *** [Makefile:110: all] Error 2
[build] Build finished with exit code 2
[main] Configuring folder: samples 
[proc] Executing command: C:\msys64\mingw64\bin\cmake.exe --no-warn-unused-cli - 
DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=C:\msys64\mingw64\bin\gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=C:\msys64\mingw64\bin\g++.exe -Hd:/VSCode/samples -Bd:/VSCode/samples/build -G "MinGW Makefiles"
[cmake] Not searching for unused variables given on the command line.

不同的编译器具有不同的库文件。GCC(由MinGW使用)使用文件名为
libname.a
的库文件,并且仅由
name
引用。以
.lib
结尾的文件通常是MSVC库文件。
[proc] Executing command: C:\msys64\mingw64\bin\cmake.exe --build d:/VSCode/samples/build --config 
Debug --target all -- -j 10
[build] Consolidate compiler generated dependencies of target sample
[build] [ 50%] Linking C executable sample.exe
[build] Warning: corrupt .drectve at end of def file
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x2c): undefined reference to `_dclass'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0xa): undefined reference to `__security_cookie'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x3c): undefined reference to `__security_check_cookie'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x5a): undefined reference to `sprintf'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.text$mn+0x18): undefined reference to `_dclass'
[build] C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/VSCode/samples/lib/parson.lib(parson.dir/Release/parson.obj):(.xdata[$unwind$json_serialization_size]+0x8): undefined reference to `__GSHandlerCheck'
[build] collect2.exe: error: ld returned 1 exit status
[build] mingw32-make[2]: *** [CMakeFiles\sample.dir\build.make:99: sample.exe] Error 1
[build] mingw32-make[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/sample.dir/all] Error 2
[build] mingw32-make: *** [Makefile:110: all] Error 2
[build] Build finished with exit code 2
[main] Configuring folder: samples 
[proc] Executing command: C:\msys64\mingw64\bin\cmake.exe --no-warn-unused-cli - 
DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=C:\msys64\mingw64\bin\gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=C:\msys64\mingw64\bin\g++.exe -Hd:/VSCode/samples -Bd:/VSCode/samples/build -G "MinGW Makefiles"
[cmake] Not searching for unused variables given on the command line.