但我不希望* gcc遵循符号链接

时间:2013-04-18 17:19:07

标签: linux gcc symlink

背景:

我写了一个程序,它将OpenBLAS库用于非常异构的计算集群。 OpenBLAS对不同的体系结构使用不同的库。

所以在一台机器上'ls -l /usr/lib64/libopenblas.so'导致

lrwxrwxrwx 1 root root 31 Mar  6 15:13 /usr/lib64/libopenblas.so -> libopenblas_barcelona-r0.2.6.so*

另一方面,结果是

lrwxrwxrwx 1 root root 33 Mar  4 09:43 /usr/lib64/libopenblas.so -> libopenblas_sandybridge-r0.2.6.so*

可能还有其他人,但这些是我检查的两个。两者都实现相同的API,只需使用不同的优化。

问题:

当我使用这些编译我自己的共享对象文件时,我使用 gcc ... -lopenblas它编译得很好,它运行在具有类似架构的机器上(即那些带有'libopenblas_barcelona-r0.2.6.so'的机器),但在其他架构上它无法运行。

ldd显示它链接到libopenblas_barcelona-r0.2.6.so而不是libopenblas.so。

有什么方法可以告诉gcc链接符号链接,而不是那个符号链接的结果,这样无论它运行的机器的架构如何,它都是“正确的”?

0 个答案:

没有答案