问题描述
我想将CMake中的RPATH设置为$ORIGIN
。我正在Windows计算机上交叉编译Linux系统。我需要将RPATH属性设置为$ORIGIN
。为此,我使用以下代码。
set_target_properties(LibraryName PROPERTIES INSTALL_RPATH "\$ORIGIN")
我得到的是\$ORIGIN
。
我还尝试了其他方式来逃避$符号
set_target_properties(LibraryName PROPERTIES INSTALL_RPATH "$ORIGIN") -> \$ORIGIN
set_target_properties(LibraryName PROPERTIES INSTALL_RPATH $ORIGIN) -> \$ORIGIN
set_target_properties(LibraryName PROPERTIES INSTALL_RPATH \$ORIGIN) -> \$ORIGIN
set_target_properties(LibraryName PROPERTIES INSTALL_RPATH "\\\$ORIGIN") -> \\\$ORIGIN
当我使用Linux机器交叉编译同一项目时,它会起作用。含义"\$ORIGIN"
-> $ORIGIN
。
我已经在CMake问题跟踪器中打开了defect,但是我猜这需要一些时间。有没有解决方法,如何在Windows中设置RPATH?也许一些命令行工具或其他黑客? ;-)
编辑
我尝试了更多的事情:
set_target_properties(LibraryName PROPERTIES INSTALL_RPATH [=[$ORIGIN]=]) => \$ORIGIN
set(ORIGIN_RPATH [=[$ORIGIN]=])
set_target_properties(FancyLibrary PROPERTIES INSTALL_RPATH ${ORIGIN_RPATH}) => \$ORIGIN
cmake_policy(SET CMP0095 OLD) + any of the mentioned variations => \$ORIGIN
当我查看build.make文件时,我发现了转义的链接器选项-Wl,-rpath,"\$$ORIGIN"
有没有办法至少在生成的build.make执行之前对其进行操作?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)