undefined reference to XXXX

今天帮忙编译某个东西时,提示undefined reference to XXXX。这个错误是链接器的错误,查了半天,唯一一个比较像的线索就是库的依赖顺序。

后来看到有人说把链接选项打两遍,比如gcc `pkg-config --cflags --libs gtk+-2.0 libusb-1.0` xx.c -o xx  `pkg-config --cflags --libs gtk+-2.0 libusb-1.0`,居然就神奇的通过了。

想想也有道理,如果真的跟链接顺序有关,那么这样写就是对称的,万一有依赖顺序相反了,就会增加一个方向依赖,避免问题。

时间: 2024-11-03 20:55:46

undefined reference to XXXX的相关文章

Qt经典出错信息之undefined reference to `vtable for classname

原文链接:Qt经典出错信息之undefined reference to `vtable for classname 这个出错信息太常见了,用过Qt两个月以上的朋友基本上都能自己解决了,因为太经典了,可以给新手参考. 出错信息一般类似:undefined reference to `vtable for classname MyWidget`在执行make命令后出现. 出错原因是在定义类的时候为了能使用signals和slot,在类定义的后面加了Q_OBJECT引起. 因为Q_OBJECT是一个

(转) Qt 出现“undefined reference to `vtable for”原因总结

由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程序的时候,会遇到各种各样这样那样的问题,而且很多是很难,或者根本找不到原因的,即使解决了问题,如果有人问你为什么,你只能回答--不知道. 今天我在这里列举的问题也是再编写Qt程序时,总是遇到的问题,问题普遍,而答案却不唯一,解释这一个问题的说法很多,往往只适合某一种情况,因为这个错误太笼统了,它就是-- “undefined reference to `vtable for”可能你看着很熟悉,似乎在c++程序中也遇到过这个问题,你说对了,有

caffe日常坑系列之:undefined reference to symbol '_ZN2cv6String10deallocateEv'

在使用caffe库编译C++时出现的 解决如下: /usr/bin/ld: /tmp/ccA5JGRP.o: undefined reference to symbol '_ZN2cv6String10deallocateEv'//usr/local/lib/libopencv_core.so.3.2: error adding symbols: DSO missing from command line解决:sudo apt-get autoremove libopencv-dev caffe

在codeblocks 下,C++编译不成功一直出现“undefined reference to `std::cout'|

自己搞了好久才知道,编辑c++,要用g++ 希望对大家有帮助 在codeblocks 下,C++编译不成功一直出现"undefined reference to `std::cout'|

Linux下运行《UNIX环境高级编程》undefined reference to `err_quit 编译出错的处理方法

错误信息: : undefined reference to `err_quit': undefined reference to `err_sys' 解决方法: 因为err_quit跟err_sys是作者自己定义的错误处理函数.所以最简单的解决办法是修改下apue.h文件,如下 /* * Our own header, to be included before all standard system headers. */ #ifndef _APUE_H #define _APUE_H #d

lua-5.2.3编译问题记录"libreadline.so: undefined reference to `PC'"

作者:zhanhailiang 日期:2014-10-21 [root@~/software]# cd lua-5.2.3 [root@~/software/lua-5.2.3]# make linux cd src && make linux make[1]: Entering directory `/root/software/lua-5.2.3/src' make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,

编译busybox遇到mount.c:(.text.nfsmount+0x): undefined reference to

如下: mount.c:(.text.nfsmount+0xa68): undefined reference to `authunix_create_default' mount.c:(.text.nfsmount+0xaeb): undefined reference to `clnt_sperror' mount.c:(.text.nfsmount+0xb12): undefined reference to `clnt_sperror' mount.c:(.text.nfsmount+0

undefined reference to `sin'问题解决

作者:zhanhailiang 日期:2014-10-25 使用gcc编译例如以下代码时报"undefined reference to `sin'": #include <stdio.h> #include <math.h> #include <stdlib.h>   main () { double a = sin(1); exit (0); } [root@~/wade/codeReview/learningc/9]# gcc -o timet

Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,

Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错, 这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是: -L 指定的路径, 从左到右依次查找 由 环境变量 LIBRARY_PATH 指定的路径,使用":"分割从左到右依次查找 /etc/ld.so.conf 指定的路径顺序 /lib 和 /usr/lib (64位下是/lib