草庐IT

choose_usr_email

全部标签

c - 在共享库的构建选项中添加 "-rpath,/usr/lib"会导致段错误

我有一个helloworld程序。#include#includeintmain(){printf("helloworld!\n");return0;}我在链接阶段的程序构建中添加-lmicroxml以链接到库libmicroxml.so当我启动我的程序时,我遇到了段错误。段错误与libmicroxml.so的负载有关。在我的helleoworld程序执行之后:strace./testexecve("./test",["./test"],[/*11vars*/])=0old_mmap(NULL,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON

linux - 原始捕获功能(CAP_NET_RAW、CAP_NET_ADMIN)在/usr/bin 和使用 libpcap 的数据包捕获程序之外不起作用

TL;DR:为什么cap_net_raw、cap_net_admin功能只能在/usr/bin(或/usr/sbin),但不是其他地方?这可以在某个地方配置吗?我在Ubuntu14.04中使用libpcap为我的C程序分配功能时遇到问题。即使在使用setcap(8)分配功能并使用getcap(8)检查它之后,我仍然遇到权限错误。似乎功能仅适用于\usr\bin和friend中的可执行文件。我的程序test.c如下所示:#include#includeintmain(intargc,char**argv){if(argc!=2){printf("Specifyinterface\n");

c - 为什么/usr/include/linux/stddef.h 是空的?

这个头文件应该定义NULL或size_t等宏,但是我发现/usr/include/linux/stddef.h是空的?为什么? 最佳答案 header的实际位置是实现定义的。你看的不是典型的包含在gcc中。您可以通过以下方式准确找到它在系统中的位置:gcc-E-'|grepstddef.h相当于包含标题在一个空的C文件中运行gcc-E在上面。/usr/include/linux中的header用于编译C库(通常是Linux上的glibc)。GNUmanual说:Thelinux,asmandasm-genericdirectorie

c - GCC 在编译时在/usr/local/include 中查找头文件,但在链接时不在/usr/local/lib 中查找库。为什么?

我已经在/usr/中安装了发行版提供的SQLite版本-版本3.4.2。我已经安装在/usr/local/SQLite版本3.7.4。/usr/include/sqlite3.h将SQLITE_VERSION_NUMBER定义为3004002/usr/local/include/sqlite3.h将SQLITE_VERSION_NUMBER定义为3007004版本3007004有函数sqlite3_initialize(),版本3004002没有。$nm-D/usr/local/lib/libsqlite3.so|grepsqlite3_initialize00018e20Tsqlit

linux - glui/usr/bin/ld : cannot find -lXmu

我已经下载了最新的GLUIsourcecode现在我正在尝试编译它。当我这样做时,出现以下错误:g++-O0-Wall-pedantic-I./-I./include-I/usr/X11R6/include-obin/example1example/example1.cpp-L./lib-lglui-L/usr/X11R6/lib/libXdmcp.a-lglut-lGLU-lGL-lXmu-lXext-lX11-lXi-lm/usr/bin/ld:cannotfind-lXmucollect2:ldreturned1exitstatus当我执行locatelibXmu时,我得到以下输

linux - 如何告诉 mex 链接到/usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的那个?

现在MATLAB2012a中的mex仅正式支持gcc4.4.6,但我想使用gcc4.7,风险自负。现在如果我直接用mex编译一些东西,它会提示/usr/lib/gcc/i686-linux-gnu/4.7/cc1plus:/usr/local/MATLAB/R2012a/sys/os/glnx86/libstdc++.so.6:version`GLIBCXX_3.4.15'notfound(requiredby/usr/lib/i386-linux-gnu/libppl_c.so.4)/usr/lib/gcc/i686-linux-gnu/4.7/cc1plus:/usr/local/

python -/usr/bin/ld : cannot find -lpython2. 7

我正在尝试使用Python2.7安装MySQLdb。我收到的错误如下所示:gcc-pthread-fno-strict-aliasing-g-O2-DNDEBUG-g-fwrapv-O3-Wall-Wstrict-prototypes-fPIC-Dversion_info=(1,2,3,'final',0)-D__version__=1.2.3-I/usr/include/mysql-I/opt/python2.7/include/python2.7-c_mysql.c-obuild/temp.linux-x86_64-2.7/_mysql.o-g-pipe-Wp,-D_FORTIFY

python -/usr/bin/env : python2: No such file or directory

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion我正尝试在Ubuntu上为我的Emacs配置Python,但出现以下错误:/usr/bin/env:python2:Nosuchfileordirectory有人可以帮我吗?我能做些什么来解决它?

linux - [01000][unixODBC][驱动程序管理器]无法打开 lib '/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so' : file not found

我正在尝试从Linux服务器访问Oracle。我正在使用unixODBC。当我尝试使用isql访问oracle时出现驱动程序管理器无法打开libsqora.so.12.1的错误。odbc.ini[NAME]ApplicationAttributes=TAttributes=WBatchAutocommitMode=IfAllSuccessfulBindAsFLOAT=FCloseCursor=FDisableDPM=FDisableMTS=TDriver=Oracle11gODBCdriverDSN=DSN_NAMEEXECSchemaOpt=EXECSyntax=TFailover=

linux - 摆脱 "gcc -/usr/bin/ld: warning lib not found"

我在链接期间有以下警告:/usr/bin/ld:warning:libxxx.so.6,neededby/a/b/c/libyyy.so,notfound(tryusing-rpathor-rpath-link)设置环境变量LD_LIBRARY_PATH=path_to_libxxx.so.6使警告静音(添加-Lpath_to_libxxx.so.6没有帮助)。我有一个单独的编译服务器,生成的二进制文件只在其中编译。二进制文件在其他服务器上执行,二进制文件可以看到libxxx.so.6(使用lddexecutable检查)。有没有其他方法可以消除编译时的警告(我有好几次了,很烦人)?