【发布时间】:2015-07-29 15:16:24
【问题描述】:
我可能会遇到这个问题的 X-Y 问题,如果我错了,我鼓励你们纠正我。
我想配置一个可以在不同平台和编译器版本上工作的工具链环境。我最初编写了一个长的 Perl 脚本,它生成一个只包含变量的配置 Makefile。我想要简单,所以我没有使用 automake 或 autoconf 编写任何复杂的东西。此外,我希望重新配置过程非常快。就我而言,我自己写的./configure 在不到一秒的时间内完成了所有工作。我对此感到非常高兴。
但是我觉得我可以使用环境变量来使用更好的方法。我可以直接设置当前的 shell 环境,而不是编写带有特定变量的 Makefile。例如:
export cc=gcc
不幸的是,一些变量已经在 $PATH 中声明了。解决办法是在另一个前面加上新的$PATH:
export PATH=/new/toolchain/path:$PATH
echo $PATH
/new/toolchain/path:/old/toolchain/path:/usr/bin:/bin...
我觉得这很难看,我想在添加新路径之前删除旧路径。
总结:
- 使用环境而不是自定义 makefile 来设置构建配置是否更好?
- 如何正确调整现有环境变量?
【问题讨论】:
-
您是否尝试过使用 SCons、CMake、autoconf 等高级构建系统?
-
好吧,CMake 使用 make 并且我希望让事情尽可能简单。所以在我的情况下 make 会更好。 Autoconf 看起来很复杂,我真的应该找到一个很好的教程。我仍然迷失了它。我真的应该看看 SCons。我不知道。
-
请注意:您发布的导出命令没有指向您发布的路径(缺少
$符号)。 -
@MichaelJaros 对,我修好了。
-
Rake或tup也不错。除了最基本的东西,做任何事情都很糟糕。