Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 部署应用程序时如何设置共享库路径_C++_Cmake_Shared Libraries - Fatal编程技术网

C++ 部署应用程序时如何设置共享库路径

C++ 部署应用程序时如何设置共享库路径,c++,cmake,shared-libraries,C++,Cmake,Shared Libraries,以前,我更喜欢在部署应用程序时使用静态库。但后来我发现使用共享库更方便,因为有时我可以替换库而不是重建整个应用程序 一个问题是如何在部署的环境中设置共享库路径。我知道一种方法是设置$LD\u LIBRARY\u PATH,但由于某些原因,我不允许这样做。在cmake中有什么方法可以做到这一点吗?例如,在部署的环境中,我将所有共享库放在文件夹/app/lib中。假设我将可执行文件放在文件夹/app/bin下。如何在cmake中设置RPATH 我试过了 set(CMAKE_INSTALL_RPATH

以前,我更喜欢在部署应用程序时使用静态库。但后来我发现使用共享库更方便,因为有时我可以替换库而不是重建整个应用程序

一个问题是如何在部署的环境中设置共享库路径。我知道一种方法是设置
$LD\u LIBRARY\u PATH
,但由于某些原因,我不允许这样做。在cmake中有什么方法可以做到这一点吗?例如,在部署的环境中,我将所有共享库放在文件夹
/app/lib
中。假设我将可执行文件放在文件夹
/app/bin
下。如何在cmake中设置
RPATH

我试过了

set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib")

但它仍然找不到共享库。谢谢您的帮助。

您可以在每次执行的基础上设置
LD\u LIBRARY\u PATH
,例如:
LD\u LIBRARY\u PATH=/app/lib您的可执行文件
。允许您这样做吗?美元登录
$ORIGIN
应该转义。请参阅并选择适用于您的系统的转义机制。@skypjack如上所述,我不允许这样做。您可以在每次执行的基础上设置
LD\u LIBRARY\u PATH
,例如:
LD\u LIBRARY\u PATH=/app/lib your\u executable
。允许您这样做吗?美元登录
$ORIGIN
应该转义。请参阅并选择适用于您的系统的转义机制。@skypjack如上所述,我不允许这样做。