【发布时间】:2018-03-19 03:30:45
【问题描述】:
我需要在我想在 Cray 机器上编译的项目中使用 libxml2。原则上它已安装,有一个xml2-config 程序给我链接器标志:
$ xml2-config --libs
-lxml2 -L/lib64 -lz -llzma -lm -ldl
我有一个非常简单的测试程序:
$ cat test.c
int main() { return 0; }
虽然原则上不需要,我可以用gcc test.c -lxml2 -L/lib64 -lz -llzma -lm -ldl 编译它就好了。但是,对于 Cray 编译器,它不起作用:
$ cc test.c -lxml2 -L/lib64 -lz -llzma -lm -ldl
/opt/cray/pe/cce/8.6.5/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: cannot find -lxml2
/opt/cray/pe/cce/8.6.5/binutils/x86_64/x86_64-pc-linux-gnu/bin/ld: cannot find -llzma
Cray 封装的英特尔编译器也是如此:
$ module swap PrgEnv-cray PrgEnv-intel
$ cc test.c -lxml2 -L/lib64 -lz -llzma -lm -ldl
ld: cannot find -lxml2
ld: cannot find -llzma
我需要使用 Cray 包装的编译器才能将正确的 MPI 和大页面放入我的程序中。
我能做些什么(除了尝试自己编译 libxml2,请参阅my other question)来获取此链接?
【问题讨论】:
标签: c linker-errors cray