首页 > 解决方案 > 如何在cmake中转义$?

问题描述

我有兴趣有这样的一行:

add_link_options(-Wl,-rpath=$ORIGIN)

但是,在可执行文件中,$ 扩展为 $$。例如

15:19:52 Debug # readelf -a mybinary | egrep -i runpath
0x000000000000001d (RUNPATH)            Library runpath: [$$ORIGIN]

可以通过构建后获得此效果patchelf,但如果可能的话,希望将其包含在 cmake 本身中。

我尝试过诸如 \$、$$ 和 "$ORIGIN" 之类的东西,但没有任何运气,除了 50 美分之外什么都想不出来。

这是cmake 3.13.1。

编辑:详细的 cmake 输出:

/usr/bin/c++  -g  "-Wl,-rpath=\$$ORIGIN" CMakeFiles/mybinary.dir/....

编辑2:这有效:

set(CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS} "-Wl,-rpath=$ORIGIN")
...
/usr/bin/c++  -g  -Wl,-rpath=$ORIGIN CMakeFiles/mybinary.dir/...

标签: cmake

解决方案


推荐阅读