【发布时间】:2009-05-14 17:35:29
【问题描述】:
我已经在我的 Fedora10 机器上安装了 boost C++ 库,但我想使用一个更新的版本,我保存在我的主文件夹中的某个位置。我希望 g++ 使用我的主文件夹位置而不是默认位置 (/usr/include and /usr/lib64) 中的包含和库文件。
就此而言,我还在~/.bashrc 文件中声明了CPLUS\_INCLUDE\_PATH and LIBRARY\_PATH 环境变量,如here 所述。
现在当我跑步时,
g++ -o hello.so -fPIC hello.cpp -shared -lboost_python
预处理器使用我的主文件夹位置中的包含文件,覆盖默认位置(应该如此,因为CPLUS\_INCLUDE\_PATH 在搜索路径中具有更高的优先级)。但是链接器似乎没有遵循相同的优先规则。它始终使用默认位置 /usr/lib64 中的 libboost_python.so,而不是首先搜索 LIBRARY\_PATH。当我使用-L 开关明确指定时,它仅链接到我的主文件夹中的libboost\_python.so 库。这真的很不方便。
【问题讨论】: