草庐IT

SO_RCVTIMEO

全部标签

c++ - 如何在 automake 脚本中创建共享库 (.so)?

给定一些源文件test.cpp我想创建一个共享库libtest.so。我正在尝试在automake文件的范围内执行此操作,但是我似乎无法使其正常工作。例如在g++下,我执行以下操作:g++-shared-fPICtest.cpp-olibtest.so然后我可以创建另一个依赖于共享库的文件,如下所示:g++mytest.cpplibtest.so-oblah我读到automake只支持通过libtool创建共享库。我试图让我的automake脚本按如下方式工作,但它似乎永远不会产生.so。我得到的最接近的是它生成一个.la和.o文件:在configure.ac中:AC_ENABLE_S

c++ - 加载共享库时出错 : libboost_system. so.1.45.0:无法打开共享对象文件:没有这样的文件或目录

我正在Linux上构建C++可执行文件。可执行文件链接到一些boost库。这是我尝试运行二进制文件时的输出:root@yourbox:~/work/dev/c++/projects/testfgci/dist/Debug/GNU-Linux-x86$./testfgci./testfgci:errorwhileloadingsharedlibraries:libboost_system.so.1.45.0:cannotopensharedobjectfile:Nosuchfileordirectory然后我在二进制文件上运行ldd来检查依赖关系:root@yourbox:~/work/

c++ - 为什么在Ubuntu下编译CUDA示例找不到libcudart.so.4?

我正在尝试运行我的CudaSDK示例,但出现以下错误:./bandwidthTest:errorwhileloadingsharedlibraries:libcudart.so.4:cannotopensharedobjectfile:Nosuchfileordirectory为什么我可以成功编译示例,但不能运行?有没有办法手动指定CUDA运行时库的路径? 最佳答案 尝试:32位:sudoldconfig/usr/local/cuda/lib64位:sudoldconfig/usr/local/cuda/lib64干杯

c++ - 对于不遵循 libNAME.so 命名约定的库,如何在没有 -l 或硬编码路径的情况下使用 GCC 链接?

我有一个共享库,我希望使用GCC链接可执行文件。共享库的名称不是libNAME.so形式的非标准名称,因此我不能使用通常的-l选项。(它恰好也是一个Python扩展,因此没有“lib”前缀。)我可以将库文件的路径直接传递给链接命令行,但这会导致库路径被硬编码到可执行文件中。例如:g++-obuild/bin/myappbuild/bin/_mylib.so有没有办法链接到这个库而不会导致路径被硬编码到可执行文件中? 最佳答案 有一个“:”前缀可以让你给你的库赋予不同的名字。如果你使用g++-obuild/bin/myapp-l:_m

c++ - ubuntu 12.04 中的 openCV 程序编译错误 "libopencv_core.so.2.4: cannot open shared object file: No such file or directory"

我在ubuntu12.04中编译并安装了openCV2.4.2。在/usr/local/include下我可以看到目录/usr/local/opencv和/usr/local/opencv2。这是我写的代码:#include#include#includeusingnamespacecv;usingnamespacestd;intmain(intargc,char**argv){Matimage;image=imread(argv[1],1);if(argc!=2||!image.data){cout我使用这个命令行编译它:g++DisplayImage.cpp-oDisplayIma

linux - ld-linux.so.2 和 linux-gate.so.1 是什么?

当我运行lddprogram我得到表单的输出linux-gate.so.1=>(0xb77ae000)libstdc++.so.6=>/lib/libstdc++.so.6(0xb76bc000)libm.so.6=>/lib/libm.so.6(0xb7691000)libgcc_s.so.1=>/lib/libgcc_s.so.1(0xb7674000)libc.so.6=>/lib/libc.so.6(0xb74c2000)/lib/ld-linux.so.2(0xb77af000)您能解释一下输出以及linux-gate.so.1和ld-linux.so.2显示与其他条目不同的

命令行查看内容 Shared Object Module(lib*.so)

查看共享对象模块(lib*.so)内容的命令行是什么?就像我们的使用方式:ar-tlib*.a用于文件(lib*.a),它显示库中的所有目标文件。EDIT1示例ar-tlib*.a给我一​​个展示:asset.osldep.o 最佳答案 使用nm-D--defined-onlylibname.so从动态库中获取符号名称。--defined-only开关只显示在这些文件中定义的符号,而不是对外部函数的引用。另一种方法是使用objdump,只捕获文本部分中的符号:objdump-T/usr/lib/libjpeg.so|greptext

php - wkhtmltopdf - libfontconfig.so.1 : cannot open shared object file

已结束。这个问题是off-topic.它目前不接受答案。想要改进这个问题?Updatethequestion所以它是on-topic堆栈溢出。关闭10年前。Improvethisquestion我正在尝试在我的debianlinux服务器上安装wkhtmltopdf,以便能够测试它是否从url创建了pdf。我已经下载了wkhtmltopdf-0.9.9-static-i386.tar.bz2并将其内容提取到一个目录中。当我尝试测试它是否正常工作时,我遇到了下一个错误:/usr/local/bin#wkhtmltopdfhttp://google.comgoogle.pdfwkhtmlt

linux - libaio.so.1 : cannot open shared object file

我有一个简单的测试程序,运行时我得到:./hello:errorwhileloadingsharedlibraries:libaio.so.1:cannotopensharedobjectfile:Nosuchfileordirectory我是这样链接的:$(CC)$(CCFLAGS)-ohellohello.o-L../ocilib-3.9.3/src/.libs-L../instantclient_11_2-locilib我的LD_LIBRARY_PATH包含这个:LD_LIBRARY_PATH=../ocilib-3.9.3/src/.libs:../instantclient_

c - 链接到 .so 文件中的旧符号版本

在x86_64linux上使用gcc和ld我需要链接到较新版本的库(glibc2.14),但可执行文件需要在具有较旧版本(2.5)的系统上运行。由于唯一不兼容的符号是memcpy(需要memcpy@GLIBC_2.2.5但库提供memcpy@GLIBC_2.14),我想告诉链接器,与其采用memcpy的默认版本,不如采用我指定的旧版本.我找到了一种非常笨拙的方法:只需在链接器命令行中指定旧的.so文件的副本即可。这工作得很好,但我不喜欢有多个.so文件的想法(我只能通过指定我链接到的所有旧库也有对memcpy的引用来使其工作)检查到svn并由我的构建系统需要.所以我正在寻找一种方法来告