不能 link 一个简单的 "hellow world" 与 Simd 库
Can't link a simple "hellow world" with Simd Library
我正在尝试编译调用 Simd 库的一个函数的简单代码:
// simd.c
#include <stdint.h>
#include "Simd/SimdLib.h"
int main(void) {
uint8_t buf1[720*576];
uint8_t buf2[900*720];
SimdResizeBilinear(buf1, 720, 576, 720*1, buf2, 900, 720, 900*1, 1);
return 0;
}
使用以下命令行:
gcc -I./ -L./Simd/ -lSimd simd.c -o simd
/tmp/cckOlRnm.o: In function `main':
simd.c:(.text+0x46): undefined reference to `SimdResizeBilinear'
collect2: error: ld returned 1 exit status
子目录 ./Simd 包含以下文件:
ls -A1 ./Simd/
libSimd.a
libSimdAvx1.a
libSimdAvx2.a
libSimdBase.a
libSimdSse1.a
libSimdSse2.a
libSimdSse3.a
libSimdSse41.a
libSimdSse42.a
libSimdSsse3.a
SimdAvx1.h
SimdAvx2.h
SimdBase.h
SimdBase_tinyxml2.h
SimdCompare.h
SimdConfig.h
SimdConst.h
SimdConversion.h
SimdDefs.h
SimdDetection.h
SimdEnable.h
SimdExtract.h
SimdHelp.h
SimdInit.h
SimdLib.h
SimdLoad.h
SimdLog.h
SimdMath.h
SimdMemory.h
SimdNeon.h
SimdSet.h
SimdSse1.h
SimdSse2.h
SimdSse3.h
SimdSse41.h
SimdSse42.h
SimdSsse3.h
SimdStore.h
SimdStream.h
SimdVersion.h
SimdVmx.h
SimdVsx.h
我对编译器消息感到惊讶 'undefined reference' 我试图在库文件中找到所需的函数:
nm -o ./Simd/*.a | grep SimdResizeBilinear
Simd/libSimd.a:SimdLib.cpp.o:00005510 T SimdResizeBilinear
我知道我的问题很愚蠢,但我很乐意听取您的建议以帮助我 link 正确地解决问题。
我使用以下选项构建了您的示例:
gcc simd.c -I./ -L./Simd/ -o simd -lSimd -lSimdBase -lSimdSse1 -lSimdSse2 -lSimdSse3 -lSimdSsse3 -lSimdSse41 -lSimdSse42 -lSimdAvx1 -lSimdAvx2 -lstdc++ -lm
我正在尝试编译调用 Simd 库的一个函数的简单代码:
// simd.c
#include <stdint.h>
#include "Simd/SimdLib.h"
int main(void) {
uint8_t buf1[720*576];
uint8_t buf2[900*720];
SimdResizeBilinear(buf1, 720, 576, 720*1, buf2, 900, 720, 900*1, 1);
return 0;
}
使用以下命令行:
gcc -I./ -L./Simd/ -lSimd simd.c -o simd
/tmp/cckOlRnm.o: In function `main':
simd.c:(.text+0x46): undefined reference to `SimdResizeBilinear'
collect2: error: ld returned 1 exit status
子目录 ./Simd 包含以下文件:
ls -A1 ./Simd/
libSimd.a
libSimdAvx1.a
libSimdAvx2.a
libSimdBase.a
libSimdSse1.a
libSimdSse2.a
libSimdSse3.a
libSimdSse41.a
libSimdSse42.a
libSimdSsse3.a
SimdAvx1.h
SimdAvx2.h
SimdBase.h
SimdBase_tinyxml2.h
SimdCompare.h
SimdConfig.h
SimdConst.h
SimdConversion.h
SimdDefs.h
SimdDetection.h
SimdEnable.h
SimdExtract.h
SimdHelp.h
SimdInit.h
SimdLib.h
SimdLoad.h
SimdLog.h
SimdMath.h
SimdMemory.h
SimdNeon.h
SimdSet.h
SimdSse1.h
SimdSse2.h
SimdSse3.h
SimdSse41.h
SimdSse42.h
SimdSsse3.h
SimdStore.h
SimdStream.h
SimdVersion.h
SimdVmx.h
SimdVsx.h
我对编译器消息感到惊讶 'undefined reference' 我试图在库文件中找到所需的函数:
nm -o ./Simd/*.a | grep SimdResizeBilinear
Simd/libSimd.a:SimdLib.cpp.o:00005510 T SimdResizeBilinear
我知道我的问题很愚蠢,但我很乐意听取您的建议以帮助我 link 正确地解决问题。
我使用以下选项构建了您的示例:
gcc simd.c -I./ -L./Simd/ -o simd -lSimd -lSimdBase -lSimdSse1 -lSimdSse2 -lSimdSse3 -lSimdSsse3 -lSimdSse41 -lSimdSse42 -lSimdAvx1 -lSimdAvx2 -lstdc++ -lm