我正在编写一个在后端使用redis的C程序。
我尝试过构建/安装hiredis(make
使用以下命令行构建:gcc-v example.c-l hiredis-I/usr/local/include/hiredis/
我尝试过的事情:
都没有运气。
我猜我没有为gcc正确链接程序,但是文档中没有任何构建示例。
我做错了什么,不允许我使用hiredis构建此代码(或任何代码)?
确切的输出是。。。
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
COLLECT_GCC_OPTIONS='-v' '-I' '/usr/local/include/hiredis/' '-mtune=generic'
/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/cc1 -quiet -v -I /usr/local/include/hiredis/ example.c -quiet -dumpbase example.c -mtune=generic -auxbase example -version -o /tmp/ccWP2etT.s
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include/hiredis/
/usr/local/include
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include
/usr/include
End of search list.
GNU C (GCC) version 4.4.7 20120313 (Red Hat 4.4.7-16) (x86_64-redhat-linux)
compiled by GNU C version 4.4.7 20120313 (Red Hat 4.4.7-16), GMP version 4.3.1, MPFR version 2.4.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 8fd7a5b48f606b047c876a297c82f28e
COLLECT_GCC_OPTIONS='-v' '-I' '/usr/local/include/hiredis/' '-mtune=generic'
as -V -Qy -o /tmp/ccnscL6h.o /tmp/ccWP2etT.s
GNU assembler version 2.20.51.0.2 (x86_64-redhat-linux) using BFD version version 2.20.51.0.2-5.43.el6 20100205
COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/:/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/
LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-I' '/usr/local/include/hiredis/' '-mtune=generic'
/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2 --eh-frame-hdr --build-id -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. /tmp/ccnscL6h.o -lhiredis -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o
这会产生一个a。当试图运行该程序时。我得到以下错误。
./a.out: error while loading shared libraries: libhiredis.so.0.13: cannot open shared object file: No such file or directory
可以使用以下命令安装缺少的库
sudoapt安装libssh-4
由于生成了a.out文件,这意味着它已正确编译和链接。运行.out时,libhiredis.so.0.13:无法打开共享对象文件:没有此类文件或目录
错误消息表示库不在库搜索路径中。
再次检查libhiredis.so.0.13是否安装到标准lib目录(/lib64, /usr/lib64, /usr/local/lib64),或者将包含它的目录添加到LD_LIBRARY_PATH
。
问题是libhiredis不在ldconfig路径中。虽然构建过程是正确的,并且它将所有内容复制到了正确的目录中,但ldconfig不知道其位置。
您可以使用ldconfig-p
查看ldconfig当前了解的所有库。
您可以使用将路径添加到ldconfig
sudo echo”/usr/local/lib
sudo ldconfig
问题内容: 我正在Linux上构建C ++可执行文件。可执行文件链接到一些Boost库中。 这是我尝试运行二进制文件时的输出: 然后,我在二进制文件上运行ldd来检查依赖关系: 我不确定为什么找不到liboos_system.sl.1.45.0 SO。我今天早些时候成功构建了它。谁能解释? 问题答案: 找不到该库。 默认情况下会在中查找库,并在中指定目录。 通常,系统库(例如boost,如果通过软
问题内容: 该程序是Xenomai测试套件的一部分,可从Linux PC交叉编译为Linux + Xenomai ARM工具链。 编辑: 确定,我没有注意到.1结尾是文件名的一部分。那到底是什么意思呢? 问题答案: 更新 尽管下面我写的是关于共享库的一般答案,但我认为这类消息的最常见原因是因为您已经安装了一个软件包,但没有安装该软件包的“ -dev”版本。 好吧,这不是在说谎-该列表中没有任何内容
问题内容: 尝试导入OpenCV时,使用出现以下错误: 不确定如何解决- 尝试使用Google的新协作工具。笔记本在这里:https : //drive.google.com/file/d/0B7-sJqBiyjCcRmFkMzl6cy1iN0k/view?usp=sharing 问题答案: 通过将其作为脚本的前两行来解决此问题:
问题内容: 我正在尝试使用Ubuntu 10.04服务器,sphinx,myql2版本0.2.7和percona服务器5.5(Myslql 5.5)运行Rails两个应用程序。irb中的mysql2可以正常工作,我可以连接到数据库。这个rails 2应用程序正在另一个带有MySql 5.1的Centos服务器中工作。当我跑步时: 我得到: mysql2.so:libmysqlclient_r.so
docker和yml gitlab yml文件 测试脚本中的远程url 执行阶段:测试时出现管道错误 有人能帮我解决这个Gitlab管道问题吗? 我已经使用docker compose yml文件将Gitlab pipeline设置为使用网格设置运行selenium测试,但似乎remoteWebdriver url连接无法使用网格设置 本地工作正常,当我有docker运行,docker组成,然后运
我跟随这篇关于人工智能农业的文章与谷歌合作 https://medium.com/deepquestai/ai-in-agriculture-detecting-defects-in-apples-b246799b329c 当运行python文件时,它会给出一个错误 ImportError:libcublas.so.10.0:无法打开共享对象文件:运行时没有此类文件或目录 使用TensorFlow