- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Ubuntu 上的 Panda3D 框架用 C++ 创建游戏。所有 Panda3D 共享库都在 /usr/lib/panda3d
中,所有头文件都在 /usr/include/panda3d
中。我正在用 SCons 编译,但我已经用 gcc 试过了,结果是一样的,所以这里是命令:
g++ -o src/main.o -c -fPIC -O2 -std=gnu++11 -I/usr/include/python2.7 -I/usr/include/panda3d -Iinclude src/main .cpp
g++ -o 测试 src/main.o -L/usr/lib/panda3d -lp3framework -lpanda -lpandafx -lpandaexpress -lpandabullet -lp3dtoolconfig -lp3dtool -lp3direct -lpthread
这是我在运行可执行文件时遇到的错误:
./Test:加载共享库时出错:libp3framework.so.1.11:无法打开共享对象文件:没有这样的文件或目录
代码不多,只是初始化一个 Panda3D 窗口,所以我怀疑这是罪魁祸首。
正如我之前所说,这些库位于 /usr/lib/panda3d
中,我现在已经检查了大约一百万次,这让我发疯。我想不出我会收到此错误的单一原因。任何帮助表示赞赏:)
编辑:
我正在查看我的文件,在 /etc/ld.so.conf.d
中有一个 panda3d.conf
文件,其中一行:/usr/local/lib/x86_64-linux-gnu/panda3d
.这有什么关系吗?
编辑#2:
不幸的是,我使用上面编辑中的路径作为库路径并得到了相同的结果。
最佳答案
I can't think of a single reason why I would get this error.
原因很简单:动态加载器没有被告知在 /usr/lib/panda3d
中查找共享库,因此也没有。
你可以运行你的程序:
LD_DEBUG=files,libs ./Test
并观察加载程序正在搜索哪些目录。
panda3d.conf
... with one line:/usr/local/lib/x86_64-linux-gnu/panda3d
那是错误的目录(或者至少不是你的库所在的目录)。
解决此问题的一种方法是将上述路径更正为 /usr/lib/panda3d
并运行 sudo ldconfig
。
另一种方法是将 -Wl,-rpath=/usr/lib/panda3d
添加到您的链接行。
关于C++ 可执行文件在运行时找不到库,即使它位于/usr/lib(在 Linux 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58153463/
我正在使用源代码中的Postgres 13(Rel_13_STRATE分支),并且我使用的是来自apachea/age源代码的(Release/PG13/1.3.0分支)中的1.3.0版的Apache
/usr/bin/ld: cannot find -ldlib /usr/bin/ld: cannot find -lcblas /usr/bin/ld: cannot find -llapack 在
我正在尝试运行 project 。但它给出了一个错误 fs.js:666 return binding.readdir(pathModule._makeLong(path));
我的新 CentOS7 中有两个目录: Work_Folder1/my_project/linux_dev.cfg Work_Folder2/my_project/linux_dev.cfg 如果我尝
我正在读这个thread和 PostgreSQL 9.4 的手册。我跑 ps auxw | grep postgres | grep -- -D 但是得到 postgres 17340 0.0
我想在我的 shell 中使用系统服务,但该服务的 bin 路径在不同的机器上是不同的(/usr/sbin/myservice 或/usr/local/sbin/myservice)。 那么,我怎样才
我正在为 centos 制定 RPM 规范,如果 arch 是 64 位的,它需要将共享库安装到/usr/lib64,否则需要安装到/usr/lib? 最佳答案 这不是它应该的工作方式。决定库去向的不
我使用 gem install watchr 在 OS X (10.8.3) 上安装了 watchr。它安装在 /usr/bin/watchr $ which watchr /usr/bin/watc
在linux下我们经常用到的四个应用程序的目录是:/bin、/sbin、/usr/bin、/usr/sbin bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp
我在 Pop_OS 下使用 PyCharm 2020.2.3 和 Python 3.8.6! 20.10(你可以像我使用 Ubuntu 20.10 一样)无法在 /usr/bin 或 /usr/lib
我在新的 MacBook 中使用 OS X Yosemite。刚刚安装了 Homebrew 和一些基本的软件包,最近搬到了这台新电脑上。 我注意到,当我安装新的 brew 包时,偶尔会出现链接错误。出
我到 gcc 的链接行连续包含以下两个条目: -lrt -lpam 这似乎扩展为: /usr/lib64/librt.so /usr/lib/libpam.so 为什么 rt 解析为 lib64 而
我有一个大型捆绑软件发行版的错误 Makefile。在某些时候,编译器总是“忘记”我想在 32 位程序中编译。这导致部分程序具有 64 位库,而其他程序具有 32 位库。 如何在每次运行 gcc 时强
如果我安装了Go发行版软件包,则会在/usr/lib/golang/pkg中看到很多文件,在/usr/lib/golang/src中看到非常相似的文件集。这两组之间有什么关系? pkg是从src中的源
我在安装 python 2.7.6 时犯了一个错误,没有使用 home brew,现在我的 python 设置为 /usr/local/bin/python 中的 python(这是 2.7.6)。
我是一名见习程序员,有时我的头脑浮在云端.. 我的同事通过 ssh 连接来搞乱我的专业计算机。其中一位告诉我,防止这种情况发生的最佳方法是保护我的计算机。为了做到这一点,我不小心更改了/usr 目录的
我在 ubuntu 16.04 上尝试编译 fbthrift ( https://github.com/facebook/fbthrift ) 时遇到奇怪的错误 make[4]: Entering d
我遇到了这个奇怪的问题 ag: /usr/lib64/liblzma.so.5: no version information available (required by ag) 由于某种原因,预装
我用的是 ubuntu。 我发现安装的许多 Python 库都在 /usr/lib/python 和 /usr/lib64/python 中。 当我打印一个模块对象时,模块路径显示该模块位于/usr/
在 Linux 上,特别是 Debian Jessie,我应该使用 /usr/bin/python 还是应该在 /usr/local/bin 中安装另一个副本? 据我所知,前者是系统版本,随着操作系统
我是一名优秀的程序员,十分优秀!