linux下linux编译命令代码的时候总是提示未定以的引用

Linux下编写c语言头文件,编译时出现“函数未定义”_百度知道
Linux下编写c语言头文件,编译时出现“函数未定义”
//test.h#ifndef__TEST_H__#define__TESH_H__voidprint();#endif//test.c#include&stdio.h&#include&test.h&voidprint(){printf(&thisisjatest\n&);}//main.c#include&test.h&intmain...
//test.h#ifndef __TEST_H__#define __TESH_H__void print();#endif//test.c#include&stdio.h&#include&test.h&void print(){
printf(&this is ja test\n&);}//main.c#include&test.h&int main(){
return 0;}执行gcc -o main main.c报错:/tmp/ccPyIgfz.o: In function `main':main.c:(.text+0xa): undefined reference to `print'collect2: ld 返回 1
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:74
获赞数:361
参与团队:
出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。方法如下gcc&-c&main.c&#&-c参数的作用是让gcc只编译,不链接gcc&-c&test.cgcc&-o&main&main.o&test.o&#&将编译好的目标代码链接当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)
gcc -o main main.c test.c
本回答被提问者采纳
来自电脑网络类芝麻团
采纳数:89
获赞数:137
参与团队:
编译的命令错了,要么写成makefile,要么就按照第一个回答的同学那么写。
iamchenmin
iamchenmin
采纳数:202
获赞数:922
擅长:暂未定制
你把test.c 和 main.c 的代码合在一块吧,那样就OK 了。
其他1条回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Linux下math库函数编译时未定义的解决办法_Linux教程_Linux公社-Linux系统门户网站http://www.linuxidc.com/Linux/18.htm
在上做C语言程序练习时,用到了sqrt函数,尽管在源文件中已包含了math.h头文件,但在编译的时候总是提示sqrt未定义。后来在网上查阅了相关资料,得知:在Linux系统下,C源文件若调用了math库里的函数,则编译时要加上-lm(是字母l,不是数字1),表示链接到math库。例如编译调用了math库函数的C源文件foo.c,可以用如下命令对其进行编译:
$gcc -o foo -g -W foo.c -lm
Linux下使用math函数库注意
由于math的函数不再libc中,所以编译的时候要加上-lm选项
gcc编译时对'xxxx'未定义的引用问题
这个主要的原因是gcc编译的时候,各个文件依赖顺序的问题。
在gcc编译的时候,如果文件a依赖于文件b,那么编译的时候必须把a放前面,b放后面。
例如:在main.c中使用了temp,那么编译的时候必...
Ubuntu下math库函数编译时未定义问题的解决
自己在Ubuntu下练习C程序时,用到了库函数math.h,虽然在源程序中已添加头文件“math.h”,但仍提示所用函数未定义,原本以为是程序出错了,找了好久,这是怎么回事呢?
后来上网查了下,发现...
编译出现函数未定义问题
头文件进行声明
库文件进行实现
Linux下使用math函数
Linux 下使用常用的 数学函数时需要包含math.h头文件,但是仅仅包含math.h头文件是不够的,还需要在Makefile文件中添加“-lm”,这个是表示链接数学函数库,相似的使用线程编程的时候...
库是预编译的目标文件(object files)的集合,它们可被链接进程序。静态库以后缀为‘.a’的特殊的存档文件(archive file)存储。
标准系统库可在目录 /usr/lib 与 /...
上传大小:2KB &em&linux&/em&调用&em&函数库&/em& 分享 my&em&math&/em& 调试环境:Red Hat 9...&em&Linux系统&/em&管理 立即下载
上传者: 橙子2014 时间:
综合评分: 0 ...
eclipse安装了CDT插件之后就可以在上
摘要: 使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项
使用math.h中声明的库函数还有一点特殊之处,gcc命令行必须加-lm选项,因为数学函数位于libm.so库...
当在ubuntu使用math库时出错 使用gcc test.c -lm -o test编译 -lm与-o顺序不能调换
没有更多推荐了,急!LINUX下,GCC编译,原程序包含&semaphore.h&头文件,为什么编译时说sem_wait,sem_post等未定义的引用_百度知道
急!LINUX下,GCC编译,原程序包含&semaphore.h&头文件,为什么编译时说sem_wait,sem_post等未定义的引用
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:210
获赞数:723
参与团队:
编译时加上参数:-lpthread要看报错的阶段,是在编译还是链接阶段.如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.
怎么加参数??在哪加?gcc -o prohy producer.c 我原来这么写的。。
对 在最后加
加了还是那样。。这是什么原因?GCC版本不行??我用的ubuntu,然后直接用命令下载的gcc
gcc -pthread -c x.c
gcc x.o -ox -pthread
采纳数:34
获赞数:110
擅长:暂未定制
楼上说的对啊,如果是在编译阶段,可能是头文件路径不对。把你gcc编译语句和报错信息贴出来吧,这样大家好帮你~
来自电脑网络类芝麻团
采纳数:330
获赞数:1217
参与团队:
你这几句太含糊啦
太长粘不了,麻烦直接跟我说下有哪几种原因会导致这种错误提示。除了头文件还有什么可能?sem_wait 是库函数,为什么会未定义?
……超级大牛会确切回答你
采纳数:55
获赞数:121
擅长:暂未定制
gcc -o prohy
producer.c
加了还是那样。。这是什么原因?GCC版本不行??我用的ubuntu,然后直接用命令下载的gcc
来自:求助得到的回答
要看报错的阶段,是在编译还是链接阶段.如果编译时函数没有找到,那是头文件的问题,如果链接时未定义引用,那是c库的问题.如果你的头文件都正常包含了,那可能你的c库没有使能semaphore的支持.
我才接触LINUX,不是很清楚,就是在文本编辑器里写好了程序,然后在UBUNTU的终端输入gcc编译命令后,出现的提示
把错误贴出来瞄瞄
其他2条回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 1, 距离下一级还需 199 积分
论坛徽章:0
wwwww.o: In function `main':
tttttt.c.text+0x3a9): undefined reference to `read_file'
collect2: ld returned 1 exit status
read_file已经在文件 con.h 中定义了
并且也包含了此头文件了 #include &con.h& ,为什么编译时还是通不过???????
编译:gcc tttttt.c
大家帮帮忙啊~~~~~~
丰衣足食, 积分 963, 距离下一级还需 37 积分
论坛徽章:0
要链接到实现了read_file这个函数的库,光包含头文件没用,头文件里的那是声明。
白手起家, 积分 16, 距离下一级还需 184 积分
论坛徽章:0
read_file()的函数定义在哪个.c文件中?
你这么写:gcc tttt.c xxx.c -o xxx
xxx.c表示你定义read_file()的.c文件
稍有积蓄, 积分 442, 距离下一级还需 58 积分
论坛徽章:0
是链接的时候,找不到read_file的入口地址.
如果是库,就在编译的时候用 -l 把这个库加进去
如果是.c文件,就在编译的时候把.c加进去使用C语言做一个简单的服务器demo程序,需要用到http,于是安装了一个libghttp。
安装完之后,在编译对应例程的时候提示:
在安装libghttp库的时候,在配置那里使用了命令:
于是到/usr/local/目录下查看,发现在include下有ghttp.h文件,在lib下有对应的so文件。
之后将动态链接库拷贝到/usr/lib下,之后使用sudo ldconfig命令,还是不行。
后来百度到:
然后在gcc编译命令后面加上了-lghttp,就可以了:
gcc编译时对'xxxx'未定义的引用问题
在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没有问题,但是编译(这一步应该是链接)为可执行文件的时候会出现找不到’xxx’的定义的情况。
g++ -o spid...
C++链接错误“对函数或变量未定义的引用”解决办法
总结一下C++链接错误“对函数或变量未定义的引用”解决办法:
1、函数或变量所在的库,没有添加到link_directories,需要在CMakeLists.txt里面添加
2、模板函数或者模...
l.inux系统中:通常呢, gcc是编译c文件的;如果是c++的文件则用g++ , 这样就能链接到c++库里面去了。定义好的类在当前的路径下。出现错误cpp_test.cpp:(.text+0x57...
&cblas_ddot&未定义的引用
extern &C& {
}int main(int argc, char const *argv[...
gcc编译时对’xxxx’未定义的引用问题
在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没有问题,但是编译(这一步应该是链接)为可执行文件的时候会出现找不到’xxx’的定义的情况。
g++ -o spider...
链接为可执行文件时‘未定义的引用’问题
很奇怪我在creatdir.c中引用c_zhtclent.h头文件,c_zht_insert2为c_zhtclent.h中的函数
为什么在编译为.o文件的时候没有错误,在连接为可执行文件的时候就会出...
程序已经添加了#include头文件,但编译却提示:
对‘pthread_create’未定义的引用
由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread....
ubuntu gcc编译时对’xxxx’未定义的引用问题
http://www.cnblogs.com/oloroso/p/4688426.html
gcc编译时对’xxxx’未定义的引用问题
原因解决办法
gcc 依赖顺序问题
Cmake相同源码,编a库OK,编so库提示各种未定义的引用
由于缺少arm小伙伴,我这个对arm一窍不通的小白菜也只好自己动手了。
遇到杂七杂八各种问题。捡一点儿记录一下,一呢方便以后在遇到类似问题回顾,另外呢,如果能帮到像我一样的小白菜那就更好了。
关于编译FreeModbus提示 对'pthread_create'未定义的引用 的解决
平台:Ubuntu 14.04
gcc:4.8.2
FreeModbus:1.5.0从sf下载的freemodbus编译到最后,在链接的时候,提示对’pthread_create’未定义的引用解决...
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865577",
container: s,
size: "300,250",
display: "inlay-fix"}

我要回帖

更多关于 linux下x86编译代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信