【发布时间】:2012-07-26 04:42:42
【问题描述】:
我在两个版本之间对 g++ 的隐式 LIBRARY_PATH 修改有疑问(g++ -v 提供了此信息)。我将 LIBRARY_PATH 设置为具有自定义库的单个本地目录。然而,事实证明只有一个版本的 g++(我们称之为版本 A)正确链接,另一个(版本 B)链接到系统默认值,这是不希望的。显然,目录的顺序混淆了,我的规范没有得到适当的尊重。这是与LIBRARY_PATH not used before /usr/lib anymore in gcc 4.2 and later? 类似的问题,尽管这些版本没有。
不知何故,我产生了查看两个不同版本的规格文件的想法(通过g++ -dumpspecs > specs 获得它们)。然后,我尝试查看使用另一个版本 (A) 的规范文件运行 g++ 版本(B;产生 *un*expected 修改)是否仍会产生该修改,令我松了一口气的是 LIBRARY_PATH 现在完全一样我期待它(匹配版本 A)!
我进一步追踪了这个奇怪的修改发生在以下行的位置:
. !m64 !m32;.:../lib64 m64 !m32;.:../lib32 !m64 m32;
除了似乎影响 LIBRARY_PATH 的设置/修改之外,我很遗憾不知道这条线的含义。 因此,我希望你们中的一些人能够“破译”这行并解释它的含义,以便我可以根据自己的要求尝试修改它。
谢谢!
【问题讨论】: