草庐IT

SO_TIMEOUT

全部标签

c++ - .o、.a 和 .so 文件有什么区别?

我知道.o是目标文件,.a是静态库,.so是动态库?它们的物理意义是什么?什么时候可以用,什么时候不能用? 最佳答案 .a是一个“存档”。尽管文件可以包含任何类型的文件,但在GNU工具链的上下文中,它是一个目标文件库(其他工具链,尤其是在Windows上,出于相同目的使用.lib,但其格式为这些通常不是通用存档,并且通常特定于工具链)。可以从存档中提取单个目标文件,这本质上是链接器在使用库时所做的事情。.o是一个目标文件。这是编译为机器代码但不(通常)完全链接的代码-它可能具有对由单独编译生成的其他目标文件(在库中或单独)中定义的符

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

testing - 如何在 "Go test"上设置 go timeout 标志

gotest-timeout99999抛出这个无意义的错误invalidvalue"99999"forflag-test.timeout:time:missingunitinduration99999这是一个错误吗?我在用着去版本go1.3“帮助”cli也无用。它说-test.timeout=0:如果是肯定的,则为所有测试设置一个聚合时间限制。但是如果你去test-test.timeout99999你会得到同样的错误-test.timeout=0:ifpositive,setsanaggregatetimelimitforalltests 最佳答案

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