是否有解决方法在Windows下的CMake中设置相对RPATH

问题描述

我想将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 (将#修改为@)