我一直在尝试将项目从 Xcode 转移到 Linux(目前是 Ubuntu x86,但希望静态链接的可执行文件将在 x86 CentOS 机器上运行?我希望我希望?)。我已经编译了整个项目,但它在链接阶段失败了——它为 IPP 定义的所有函数提供了未定义的引用。这可能是一件非常小而愚蠢的事情,但我已经为此绞尽脑汁好几天了,但我无法让它发挥作用。
这是编译语句(我也有一个生成相同错误的生成文件):
g++ -static /opt/intel/ipp/6.0.1.071/ia32/lib/libippiemerged.a /opt/intel/ipp/6.0.1.071/ia32/lib/libippimerged.a /opt/intel/ipp/6.0.1.071/ ia32/lib/libippsemerged.a /opt/intel/ipp/6.0.1.071/ia32/lib/libippsmerged.a /opt/intel/ipp/6.0.1.071/ia32/lib/libippcore.a -pthread -I /opt/ intel/ipp/6.0.1.071/ia32/include -I 工具/include -o main main.cpp pick_peak.cpp get_starting_segments.cpp get_segment_timing_differences.cpp recast_and_normalize_wave_file.cpp pitch_score.cpp pitch_score.cpp pitch_curve.cpp tools/source/LocalBuffer.cpp工具/来源/wave.cpp distance.cpp
...这是一长串链接器错误的开头:
./main.o: In function `main':
main.cpp:(.text+0x13f): undefined reference to `ippsMalloc_16s'
main.cpp:(.text+0x166): undefined reference to `ippsMalloc_32f'
main.cpp:(.text+0x213): undefined reference to `ippsMalloc_16s'
有任何想法吗?FWIW,这些是我的 Xcode 项目中的 IPP 依赖项,它们可以毫无问题地构建、链接和运行:“-lippiemerged”、“-lippimerged”、“-lippsemerged”、“-lippsmerged”、“-lippcore”、
谢谢!