我有两个g++
程序位于/usr/local/bin/
和/usr/bin/
我希望默认g++
在/usr/local/bin/
. 但是,我不想更改我的 PATH 环境变量,因为对于其他程序。我更喜欢 in 中的版本而/usr/bin/
不是/usr/local/bin/
. 这可能吗?
为了明确我的观点:
我希望我的两个程序的默认值是:
g++
在/usr/local/bin/
python
中/usr/bin/
但是在/usr/local/bin/
and 中/usr/bin/
,两个程序都存在,我该怎么办?
rex*_*oni 11
选项 1:在您的路径上创建一个覆盖文件夹
如果您需要以间接方式调用这些程序(例如由窗口管理器启动的某些应用程序将调用g++
或python
),您应该编辑您的路径。您可以简单地在您的路径的开头添加一个新文件夹~/.bashrc
:
export PATH=/home/username/.bin:$PATH
Run Code Online (Sandbox Code Playgroud)
并放置两个符号链接以指向适当的程序:
ln -s /usr/bin/python /home/username/.bin/python
ln -s /usr/local/bin/g++ /home/username/.bin/g++
Run Code Online (Sandbox Code Playgroud)
这样,一旦您~/.bashrc
的来源正确(注销,然后重新登录),一切都应该找到正确的python
和正确的g++
.
选项 2:使用alias
for bash 跟随
如果您正在寻找更轻量级的解决方案,并且您只直接从 bash 调用 python,您可以alias
在您的~/.bashrc
:
alias python=/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
选项 3:只需更改python
/usr/local/bin/ 中的名称
或者你总是可以重命名/usr/local/bin/python
为/usr/local/bin/python-alternate
或什么的。我不建议在 中重命名东西/usr/bin
,因为至少在由包管理器控制的 Debian 中。通常/usr/local/bin
不是。
选项 4:在 Makefile 中指定正确的编译器
如果您的工作流使用make
,或者一些更广泛的应用程序调用make
(例如autotools
或cmake
),几乎总是有一个选项来指定您的编译器。例如,您的 makefile 可能如下所示:
CXX=/usr/local/bin/g++
all:
$(CXX) inputfile.cpp -o outputfile
Run Code Online (Sandbox Code Playgroud)
或者cmake
你可能会配置
cmake -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ..
Run Code Online (Sandbox Code Playgroud)
不同的程序将有不同的语法来指定编译器,但您总是可以指定它。
归档时间: |
|
查看次数: |
17043 次 |
最近记录: |