编译作品,开始不 - "standard path" ?
Compiling works, starting not - "standard path"?
我想在Ubuntu操作系统下使用SFML和C++。我用cmake创建了两个调试/发布共享库(通过本教程)
我可以编译和链接我的测试应用程序,而不需要提供任何关于路径的信息。所以我认为标准路径一切正常
g++-c main.cpp
g++main.o-o sfml应用程序-lsfml图形-lsfml窗口-lsfml系统
但当我现在开始我的应用程序时/sfml应用程序显示
/sfml应用程序:加载共享库时出错:libsfml graphics.so.2:无法打开共享对象文件:没有这样的文件或目录
这让我很困惑。因为我认为/usr/local/lib是标准路径,当我在编译时添加这个路径
g++main.o-o sfml app-L/usr/local/lib-lsfml图形-lsfml窗口-lsfml系统
它是有效的。但它也应该在不提供信息的情况下使用-L
那么问题出在哪里呢?我在重新安装Ubuntu之前已经做了这个。在我的旧系统上,它运行良好,可以通过启动我的应用程序。/终端,也可以双击。
当我添加控制台时
export LD_LIBRARY_PATH=$PATH:/usr/local/lib
我可以从控制台启动应用程序。但仅在特定的一个中。我希望应用程序也总是双击启动(不仅仅是从终端)。如何添加Libary"systemwide"?
您需要将/usr/local/lib
添加到/etc/ld.so.conf.d/
中的文件中,然后调用ldconfig
来重建其缓存。
一种方法:
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/usrlocal'
sudo ldconfig
那么您应该能够在没有-L /usr/local/lib
的情况下编译,也可以使用export LD_LIBRARY_PATH=$PATH:/usr/local/lib
。
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 我需要安装什么才能获得在Windows Server 2012 R2 Standard上运行C++hello world
- 如何强制嵌入式python使用与命令行相同的sys.path?
- 为什么"non-standard syntax; use '&' to create a pointer to member"在 CTOR 中使用线程?
- 函数参数中的向量"Non-standard syntax"错误
- 什么是"Reading unbounded stream from standard input (Memory Management)"的例子
- C++ standard: ODR and constexpr std::string_view
- [LLVM-9 clang-9 OSX]: std::filesystem::path unrecognized
- 我可以对"int 文件 = open(path, flag);"做点什么吗?
- UCRTbase.dll涉及TCP通信的C ++ Windows Embedded Standard崩溃
- "#include <path/to/header>"指令的含义(如"#include <loki/Functor.h>")
- Cppcheck 静态代码分析器实际上可以检测到不太常见的警告(如 "Relative Path Traversal (CWE-23)" 或"Buffer Under-read(CWE-127)")吗
- 如何处理异步函数中的异常UWP应用程序getFileFrompathAsync(path);
- 使用std :: filesystem :: path中的double
- 使用谷歌测试编译程序时"g++ is not a full path"
- c++ std::bad_alloc on std::filesystem::path append
- CodeLite opencv path
- 安装 gRPC : ld: 警告: 找不到选项 '-L/<path>/grpc/libs/opt/c-ares' 的目录
- 构建 vcxproj 文件给我一个无信息的错误"The system cannot find the path specified"
- 编译作品,开始不 - "standard path" ?