undefined reference to...

Linux 下编程出现undefined reference to...

原因分析:

1、链接时缺失了相关目标文件(.o)

2、链接时缺少相关的库文件(.a/.so)

3.    链接的库文件中又使用了另一个库文件

4 多个库文件链接顺序问题

在链接命令中给出所依赖的库时,需要注意库之间的依赖顺序,依赖其他库的库一定要放到被依赖库的前面,这样才能真正避免undefined reference的错误,完成编译链接。

5. 在c++代码中链接c语言的库

参考http://blog.csdn.net/aiwoziji13/article/details/7330333

具体到在qt中使用live555静态库,需要将

libliveMedia.a libgroupsock.a libBasicUsageEnvironment.a libUsageEnvironment.a复制到编译树目录。
然后将四个库文件顺序添加到qt creator的pro文件,如

LIBS += libgroupsock.a
LIBS += libliveMedia.a
LIBS += libBasicUsageEnvironment.a
LIBS += libUsageEnvironment.a

时间: 2024-10-12 15:54:00

undefined reference to...的相关文章

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

undefined reference to `__sync_bool_compare_and_swap_4

然后开始glibc的编译工作. 你必须设定march这个参数才行,要不然会出现“undefined reference to `__sync_bool_compare_and_swap_4′.”这个错误 Core 2 Duo, GCC 4.2,CFLAGS 添加 -march=nocona -mtune=generic. 如果是GCC 4.1,Core Solo/Duo使用-march=prescott: Core 2 Duo/Solo则使用-march=nocona. i686等类似设置,例如

nios ii 13 主程序的函数可以用Open Declaration 查看,但是编译的时候却说 undefined reference to 。。。这是为什么?

在做12864 ip 核试验时,写了三个文件第一个是时序文件QC12864.v第二个是QC12864.H这个文件主要包括声明和宏定义,第三个文件是QC12864.c这个文件包含函数的定义.详细的请看 http://www.cnblogs.com/yuphone/archive/2010/03/25/1694547.html.我出现这个错误后把三个文件和成一个文件编译的时候,编译错误就发生了变化.把原来所指向的错误更加的细化.指向了原来错误那一行所包含的隐含信息.原来我在文件中出现了许多的语法错误

[Qt解错篇]报错:error: undefined reference to vtable for ClassName

一.问题描述: 编译工程时报错:error: undefined reference to vtable for ClassName,如图示: 二.问题分析: 造成这种错误的原因很多,甚至在纯C++编程过程中也可能出现.下面根据自己情况,具体问题具体分析. 原因:在原先没有Q_OBJECT关键字的工程中添加了该关键字,但是没有执行qmake,直接编译导致出现该错误. 三.例子: 原先工程的类建立: class CAppConfig { public: CAppConfig(void); CApp