草庐IT

SO_TIMEOUT

全部标签

linux - strftime_l lib64/libc.so.6 处的 SIGSEGV 段错误

我正在将pro*c代码从UNIX移植到LINUX。代码已成功编译并创建可执行文件。但是在运行时它会引发段错误。我一步一步调试代码,下面是GDB调试的输出。Breakpoint4at0x3b19690f50(gdb)n525strftime(buf,MAX_STRING_LEN,"%d/%b/%Y:%H:%M:%S",dummy_time);(gdb)nBreakpoint4,0x0000003b19690f50instrftime()from/lib64/libc.so.6(gdb)nSinglesteppinguntilexitfromfunctionstrftime,whichha

linux - 只有在 linux 屏幕 session 中时才会出现 tensorflow 导入错误 :libcublas. so.8.0:无法打开共享对象文件

正如标题所说,只有在打开screensession的时候无法导入tensorflow,但是不打开screensession就没事了。我需要在linux后端运行代码,但现在我没有不知道如何解决问题。ImportError:libcublas.so.8.0:cannotopensharedobjectfile:Nosuchfileordirectory 最佳答案 你能在你的屏幕session中仔细检查你的LD_LIBRARY_PATH包含什么吗?如果它不包含cuda,那么添加它就可以在普通shell上解决我的问题。exportLD_LI

linux - 做一组后getsockopt SO_RECVBUF 在linux 中显示两倍的值?

当使用SO_RECVBUF调用setsockopt,然后转身使用SO_RECVBUF调用getsockopt时,它似乎告诉我它将缓冲区大小设置为我请求设置的两倍。有人知道为什么会这样吗?有问题的代码:https://gist.github.com/rdp/8443238输出:settingitas2222[udp@0x1a72ec0]endreceivebuffersizereportedis4444仅在linux中,在其他操作系统上似乎将其报告为我设置的值。谢谢。 最佳答案 摘自Linuxmanpage用于socketSO_SND

linux - GDB 不会中断动态加载的 .so 文件?

在我的Linux系统中,我正在编写一个在运行时动态加载一些.so库的程序。是这样的:可执行程序在开始运行时,会在某个目录下搜索,然后加载该目录下的所有.so文件。请注意可执行文件和.so是独立构建的,可执行文件的构建不链接到.so文件。我的问题是:在我运行附加了GDB的程序(因此所有.so库都已加载)之后,我似乎能够在.so文件中的代码上设置断点(GDB提示我这个断点设置在一个共享库中),但这个断点实际上从未中断过。我应该如何使这些断点真正起作用?在调试session期间,我在正确的位置提供了所有源代码,并且-g选项处于打开状态。我还删除了编译时的-O2优化。

linux - 如何在 Linux 上获取/etc/ld.so.conf 中的路径列表

获取由/etc/ld.so.conf配置的路径列表和其中包含的文件的最便携、最可靠的方法是什么?手动解析文件似乎不是一个好主意——格式可能会在未来的修订版中发生变化。为了让大家更好的理解这个问题,下面我会给出具体的细节。请注意,尽管有这些细节,但这是一个通用的编程问题,适用于其他情况。有一个程序,叫做LuaRocks.它是Lua编程语言的包管理器(有点像Rubygems或Pythoneggs)。LuaRocks包被称为“rocks”。作为一个方便的功能,LuaRocks允许摇滚作者为摇滚指定外部依赖列表,制定为C头文件和/或动态库文件的列表。(.soonLinux。)如果指定的文件不存

c - .so 和 .so.x 的区别

*.so和*.so.x之间有什么区别,X表示什么,为什么首先要这样做? 最佳答案 .so是一个共享对象,动态链接库。通常动态链接库可能有多个名称,大多数名称是symboliclinks的名称。到剩余名称,在这些名称中.x代表库的主要版本,或特定so的完整版本号例如,libmylib.so.2将是动态链接库libmylib的第二个主要接口(interface)修订版的文件名 关于c-.so和.so.x的区别,我们在StackOverflow上找到一个类似的问题:

c++ - Linux - 找不到 SO 文件

我有一个程序需要安装liblog4cpp才能运行。现在,我想让程序在没有liblog4cpp的情况下在另一台机器上运行。所以我只是找到log4cpp.so并将其移动到我的程序的同一目录中。但是运行报错:errorwhileloadingsharedlibraries:liblog4cpp.so.4:cannotopensharedobjectfile:Nosuchfileordirectory我做的对吗?我怎样才能告诉程序找到它旁边的SO文件? 最佳答案 除了其他人的建议之外,考虑将文件添加到动态链接器的缓存中。你可以这样做:ldc

c - 动态链接器 (ld.so) 中的运行时 cpu 检测

我想将运行时CPU调度集成到我的库中。我有一些函数的几个版本,针对sse2/sse3/avx和x87通用变体进行了优化。我想将所有版本编译成一个.so库,我想如何实现cpu调度程序。我认为最快的方法是在链接步骤(动态链接)进行cpu调度,因此当ld.so加载我的库时,我希望它检查cpu是否支持sse2、sse3或avx,然后我希望ld.so选择正确的函数集。例如(使用gcctargetattribute):图书馆:float*func3_generic(float*a,float*b)__attribute__((__target__("fpmath=387")));float*fun

android - 无法在 Raspberry Pi 上打开共享库 (so)

我正在尝试在RaspberryPIARM机器上运行为Android(在.apk中找到)编译的ARM共享对象二进制文件。不幸的是,二进制文件是封闭源代码,我无法为运行在raspberrypi(raspian、debian派生)上的操作系统重新编译它小问题:是否可以在树莓派上运行这样一个为android编译的.so?我在这里上传了二进制文件:http://www.speedyshare.com/MSXq9/libfoo.so(下载不便请见谅)。我在这里发现了这个类似的问题RunningARMbinariesforAndroidonLinuxARM它表明二进制文件不会在其他unix发行版上运

c++ - 我如何从 Ocaml 调用 C++ 代码,使用它自己的共享库 .so ?

我需要构建一个调用共享对象的Ocaml/C++模块(Linux下的.so)只要编译一个简单的Ocaml/C++stub是一个问题,我就可以管理它,但是当我需要将.so与ocamlmklib或ocamlopt链接时,它会失败我在gcc4.5(c++0x)下工作共享对象的文件:你好.hpp#include#includeusingnamespacestd;classHelloApplication{public:HelloApplication();~HelloApplication();voidsay(strings);};typedefHelloApplication*(*create