linux - 如何使用CMake更新库路径?

标签 linux cmake shared

我正在为 GNU/Linux 编写共享库,现在将使用“sudo make install”进行安装。我有 CMake 配方来创建文件并将它们安装在“/usr/local/lib/app”中,并且正确创建了库和链接。

但是库路径没有更新,我必须手动运行“sudo ldconfig/usr/local/lib/app”以使库可用。

我系统上的其他几个包将它们的库放在/usr/local/lib 下的特定文件夹中,所以我假设这是正确的。

那么如何让 CMake 更新系统的库路径以及创建文件并安装它们呢?执行此操作的正确方法是什么?

我也希望它完成,以便库路径更新在系统重启后仍然存在。

谢谢, 黑体字

最佳答案

I'd also like it accomplished so that the library path update survives a system restart.

我不知道有任何特定于 CMake 的设施。但是,您应该能够添加如下规则以使更改持久化。

echo "/usr/local/bret/lib" > /etc/ld.so.conf.d/bret-i386.conf
echo "/usr/local/bret/lib64" > /etc/ld.so.conf.d/bret-x86_64.conf
/sbin/ldconfig

当您覆盖 bret/lib{,64} 中的文件时,您仍然需要重新运行 ldconfig。

关于linux - 如何使用CMake更新库路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5455027/

相关文章:

c++ - 共享库无法访问程序的内存

linux - 在 MIPS TLB 中,除了 ASID 字段之外,两个条目是否可能相同?

c++ - CMake:防止在子目录库项目中构建测试可执行目标

c++ - 如何使用 "Modern CMake"设置编译器标志?

coding-style - CMake 源代码中大写/小写一致性的工具

ios - 从 iOS 中使用 smb 本地访问 Windows/Mac 共享文件夹

linux - 如何将 LANG 设置为 ascii?

linux - Bash:使用来自不同命令的模式的命令的grep结果?

c++ - 使用 Visual Studio 2017 在 Linux 上构建现有的 C++ 解决方案

session - Tomcat session 复制