如何改变qmake PREFIX的位置

Sta*_*tan 10 linux makefile

我用下面的命令来安装一些东西.

qmake PREFIX=/path/to/my/dir
make
make install
Run Code Online (Sandbox Code Playgroud)

但是我给出的路径是错误的,如何将PREFIX更新到正确的位置并删除旧的安装,然后重新安装?

我试过了:

rm -rf /path/to/my/dir/bin    # this is where the program being installed
qmake PREFIX=/path/to/correct/dir
make
make install
Run Code Online (Sandbox Code Playgroud)

但它仍然安装在旧路上.

小智 9

根据"qmake -h",这将在全球范围内设置:

qmake -set prefix /path/to/correct/dir


rak*_*ice 5

对于 ~ QT 5:

qmake安装目录中的标准安装规则来自qmake变量target.path.

通常,qmake不使用名为 的设置PREFIX,尽管因为这是 Unix 中用于目标安装目录的传统术语,所以对于特定项目来说,创建自己的PREFIX变量以在其项目文件 ( *.pro) 中使用是一个足够流行的约定。

查看.pro项目的文件并找出target.path设置的位置。如果它是从环境变量设置的,即

target.path = $$(PREFIX)  # note the regular parentheses
Run Code Online (Sandbox Code Playgroud)

然后你可以在你运行的环境中传递值qmake

$ PREFIX=/path/to/my/dir qmake 
Run Code Online (Sandbox Code Playgroud)

如果它是从qmake属性设置的,即

target.path = $$[PREFIX]  # note the square brackets
Run Code Online (Sandbox Code Playgroud)

然后您可以qmake在命令行上为将来的运行持久设置属性:

$ qmake -set PREFIX /path/to/my/dir
Run Code Online (Sandbox Code Playgroud)

如果它是从内部变量设置的,它将看起来像

target.path = $$PREFIX
Run Code Online (Sandbox Code Playgroud)

或者

target.path = $${PREFIX}  # note the curly braces
Run Code Online (Sandbox Code Playgroud)

无法qmake从命令行覆盖内部变量的值;您需要找出.pro文件中内部变量的设置位置并进行适当的更改,也许只是编辑.pro文件,或者那里是否存在某种逻辑,弄清楚如何让它选择不同的值。