取决于VS2010中静态编译的库时未定义的符号

时间:2015-03-04 17:04:40

标签: c++ visual-studio-2010 gcc static-libraries

我在Visual Stuio 2012 Express中有一个项目,我希望包含一个静态库,使用来自gcc的{​​{1}}编译。我在项目的项目选项中包含了库。

无效。接下来,我尝试使用模型最小库。

test.c的

MinGW

CMD:

int foo(){return 5;}

objdump的:

gcc -c test.c
ar rcs libtest.a test.o

但是VS2010仍然会返回相同的错误:

C:\ARM_Workpsace - Legacy\HardwareEmulation\build>objdump -t test.o

test.o:     file format pe-i386

SYMBOL TABLE:
[  0](sec -2)(fl 0x00)(ty   0)(scl 103) (nx 1) 0x00000000 test.c
File
[  2](sec  1)(fl 0x00)(ty  20)(scl   2) (nx 1) 0x00000000 _testfun2
AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 0
[  4](sec  1)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .text
AUX scnlen 0xa nreloc 0 nlnno 0
[  6](sec  2)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .data
AUX scnlen 0x0 nreloc 0 nlnno 0
[  8](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss
AUX scnlen 0x0 nreloc 0 nlnno 0
[ 10](sec  4)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .rdata$zzz
AUX scnlen 0x11 nreloc 0 nlnno 0
[ 12](sec  5)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .eh_frame
AUX scnlen 0x38 nreloc 1 nlnno 0

1 个答案:

答案 0 :(得分:1)

MinGW有关于在Visual Studio项目中使用MinGW库的说明:

http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

由于不同编译器提供的库不一定兼容的原因,请参阅:

http://www.mingw.org/wiki/Interoperability_of_Libraries_Created_by_Different_Compiler_Brands