我有一个脚本,可以设置交叉编译所需的所有变量.这只是其中的一部分:

export CONFIG_SITE=~/workspace/eldk-5.4/powerpc/site-config-powerpc-linux
export CC="powerpc-linux-gcc  -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
export CXX="powerpc-linux-g++  -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
export CPP="powerpc-linux-gcc -E  -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
export AS="powerpc-linux-as "
export LD="powerpc-linux-ld  --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
export GDB=powerpc-linux-gdb

如果我输入source environment-setup-powerpc-linux,所有环境变量都会导入到当前的shell会话中,我可以编译我的示例.

是否可以在cmake中导入这些变量?如果是,怎么做?


更多细节:

  1. 我使用ELDK v 5.4,它的安装脚本生成一个脚本,该脚本设置所有环境变量
  2. 我找到了this tutorial,它解释了如何手动设置交叉编译,但没有解释如何使用脚本,脚本设置了所有内容
  3. 如果我在设置cmake之前调用脚本,一切正常,我可以交叉编译,但我希望cmake调用脚本

推荐答案

阅读cmake quick start,可以在命令行上指定变量:

cmake -DVARIABLE1=value1 -DVARIABLE2=value2 ...

否则,cmake脚本中的set命令可能就是您想要的,请参见reference manual.要设置environment variable路径,请执行以下操作:

set(ENV{PATH} "/home/martink")

要设置正常变量,请执行以下操作:

set(variable "value")

不确定要设置哪些,可能是环境设置.

也就是说,setting environment variable prior to calling cmake通常是解决这个问题的最简单的解决方案,在本例中是https://stackoverflow.com/a/15053460/684229

Linux相关问答推荐

我想强调某些条件是否与Linux中的全部输出匹配

在具有不同文件类型的文件夹中编辑多个 xml 文件 - 使用预定顺序

如何在 Linux 上打印带有屏蔽值的环境名称?

awk内部的变量操作

用户级线程如何与内核级线程对话

如何在初始化脚本中以特定用户身份运行命令?

如何计算制表符分隔的文本文件中字段的唯一值的数量?

将参数传递给 awk 脚本文件

如何在没有 IDE 的情况下构建和部署三星 SmartTV 应用程序(例如:在 Linux 上)

在亚马逊 ec2 linux 微型实例上的 virtualenv 中安装 scipy 时遇到问题

polkitd未注册身份验证代理的解释

Pthread mutex互斥断言错误

Docker Volume 没有挂载任何文件

如果关键字触发然后执行命令,Shell 脚本来监视日志(log)文件?

Linux下的签名可执行文件

以 qsub 开头的 shell 脚本的参数

`cd //` 中的双斜杠 // 在 Linux 中是什么意思?

`os.symlink` 与 `ln -s`

在 Docker 容器中运行的 JVM 的驻留集大小 (RSS) 和 Java 总提交内存 (NMT) 之间的差异

如何查看线程在哪个 CPU 内核中运行?