- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个依赖于 libdb2.a 的 C 可执行文件。然而,当调用可执行文件时,弹出以下错误:
exec(): 0509-036 Cannot load program /my/path/my_c_exe because of the following errors:
0509-150 Dependent module libdb2.a(shr.o) could not be loaded.
0509-022 Cannot load module libdb2.a(shr.o).
0509-026 System error: A file or directory in the path name does not exist.
后来发现我应该在我的主目录下的文件 .profile
中添加以下环境设置:
LIBPATH=/db2/v84bc/sqllib/lib64
export LIBPATH
是的,问题已解决。但我仍然对最初的错误感到困惑,因为静态库 libdb2.a
应该在编译时构建到 c 可执行文件 /my/path/my_c_exe
中。可执行文件不应该在运行时寻找它所依赖的静态库,不是吗?如果 db2 是共享对象,我就能明白其中的原理。但对于静态库,该错误超出了我的理解范围。
有关此错误原因的任何提示吗?或者,虽然libdb2.a
被命名为静态库,但它实际上是一个共享对象?除了查看后缀(.a 或 .so)之外,如何确定一个库是静态库还是共享对象?
最佳答案
您关于表示静态库的后缀 .a
的假设是不正确的。按照约定,.a
是共享库的后缀,它可以包含共享和静态对象,两者都有后缀.o
。对象是共享的还是静态的在其 XCOFF header 中指示。
更多信息in the manual .
关于无法加载模块 libdb2.a(shr.o),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25509673/
我正在尝试在我的树莓派上设置 Jade 加密挖掘软件。我使用的是树莓派钱包的 ARM 发行版,可在此处获取:https://www.emeraldcrypto.de 我可以很好地编译钱包,但是当我用
我克隆了this repo然后... cd build_unix ../dist/configure make sudo make install 然后我转到我尝试编译并运行 stack instal
我正在尝试用 C 编写一个小程序,它将在 FreeBSD 9.1 系统上打开并从 Berkeley 4.2 哈希 DB 中读取以进行测试,但我无法编译它。这是我第一次用 C 语言编写任何东西并从命令行
我是一名优秀的程序员,十分优秀!