展开全部
他是不是给你一个动态链接库 .a结尾的文件,编译的时候需要添加进去
这里举个例子
编译 gcc test.c -lhello
-l 选项告诉编译器要使用hello这个库。奇怪的地方是动态库的名字是libhello.so,这里却使用hello.
但这样还不行,编译会出错。
In function `main':
test.c:(.text+0x1d): undefined reference to `hello'
collect2: ld returned 1 exit status
这是因为hello这个库在我们自己的路径中,编译器找不到。
需要使用-L选项,告诉hello库的位置
gcc test.c -lhello -L. -o test
-L .告诉编译器在当前目录中查找库文件
这里举个例子
编译 gcc test.c -lhello
-l 选项告诉编译器要使用hello这个库。奇怪的地方是动态库的名字是libhello.so,这里却使用hello.
但这样还不行,编译会出错。
In function `main':
test.c:(.text+0x1d): undefined reference to `hello'
collect2: ld returned 1 exit status
这是因为hello这个库在我们自己的路径中,编译器找不到。
需要使用-L选项,告诉hello库的位置
gcc test.c -lhello -L. -o test
-L .告诉编译器在当前目录中查找库文件
展开全部
一个头文件.h(XXX.h)和一个.c文件(xxx.c)
这个.c文件用到了.h 就在.c文件中加入对该文件的引用
#include "XXX.h"
然后
gcc xxx.c
生成a.out
这个.c文件用到了.h 就在.c文件中加入对该文件的引用
#include "XXX.h"
然后
gcc xxx.c
生成a.out
更多追问追答
追问
头文件里定义了err_sys()函数,然后在.c程序中调用,但是编译的时候显示err_sys()函数没有定义,程序是绝对没错的,因为是APUE里的程序
追答
一般情况,我们在头文件中,只是进行函数声明,具体的函数定义与实现,要单独的去写才可以!你可以提供你的代码,帮你看看
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询