Linux下编写c语言头文件,编译时出现“函数未定义”

作者&投稿:滑唐 (若有异议请与网页底部的电邮联系)
在头文件里定义的函数在编译时说未定义?~

void err_sys(const char *, ... );
这样只是声明了一下,没有对其定义,当然会报错,这个就相当于printf()的函数,只是它自己定义了一个新的,你去stdio.h头文件里看看printf()怎么定义的。

出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。
根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。
方法如下
gcc
-c
main.c
#
-c参数的作用是让gcc只编译,不链接
gcc
-c
test.c
gcc
-o
main
main.o
test.o
#
将编译好的目标代码链接
当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)

出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。


根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。

方法如下

gcc -c main.c # -c参数的作用是让gcc只编译,不链接
gcc -c test.c
gcc -o main main.o test.o # 将编译好的目标代码链接

当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)



编译的命令错了,要么写成makefile,要么就按照第一个回答的同学那么写。

你把test.c 和 main.c 的代码合在一块吧,那样就OK 了。

gcc -o main main.c test.c


linux使用gcc编译c语言程序linux使用gcc
gcca.o-oa程序运行:.\/ahello编辑本段GCC编译简单例子编写如下代码:#includestdio.h>intmain(){printf("hello,world!n");}执行情况如下:gcc-Ehello.c-ohello.igcc-Shello.i-ohello.sgcc-chello.s-ohello.ogcchello.c-ohello.\/hellohello,world!linux下怎么安装gcc?1、在Linux环境下只要能链...

在Linux系统中,如何运行一个C语言程序?
1、打开kali linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。2、可以看到已经生成了一个后缀为test.c的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vim test.c或者gvim test.c打开这个文件并编写代码。3、编写完了这个代码。现在开始编译源文件。在终端中输入:...

linux执行c文件linux执行c文件
1、进入linux系统,创建C文件“vimtest.c”同时进入vim编辑界面,也可以利用指令“touchtest.c”创建后,然后“vimtest.c”进入vim编辑界面。2、vim编辑界面,由“ESC”建来切换三种模式,一般模式:在Linux终端中输入“vim文件名”就进入了一般模式,但不能输入文字。编辑模式:在一般模式下按i就会进入...

Linux运行c语言程序linux运行C语言
怎么在linux中编写c语言程序?先在终端中输入vimtest.c回车进入vim编辑器,再按一下a键,进入编辑状态,然后输入如下C语言语句:includestdio.h>intmain(){printf(helloworld!n);}到此,按esc键退出编辑状态,再输入一个冒号(shift+冒号分号那个键),紧跟着输入wq,即输入:wq按回车,即推出vim编辑器...

怎么在linux中编写c语言程序
首先需要有一个安装好gcc的Linux系统,然后进行代码的编写进行测试演示 工具:Ubuntu12.04 步骤 进入Linux系统后,启动一个shell命令终端,在Ubuntu的三键启动终端方法是同时按下Ctrl键+Alt键+t 启动后如下图所示:在终端下敲入命令 gedit helloworld.c 后按下回车键。这个命令会用gedit软件打开文件名为...

linux终端下如何进行C语言编译
1、首先在linux下判断是否安装gcc编译器,直接执行:gcc -v,判断是否安装gcc。2、然后需要在代码框内写一个简单的C源程序。3、在程序中使用了C语言中的数学开方函数,sqrt(),所以需要引入math.h头文件。4、写完源程序之后,我们对其进行编译,如果使用通常的编译语句,【gcc math.c -o math】进行...

在Linux下用C语言编程
4。守护进程的创建 如果你在DOS时代编写过程序,那么你也许知道在DOS下为了编写一个常驻内存的程序我们要编写多少代码了.相反如果在Linux下编写一个"常驻内存"的程序却是很容易的.我们只要几行代码就可以做到. 实际上由于Linux是多任务操作系统,我们就是不编写代码也可以把一个程序放到后台去执行的.我们...

linux编译c语言命令linux编译c语言
怎么在linux中编写c语言程序?先在终端中输入vimtest.c回车进入vim编辑器,再按一下a键,进入编辑状态,然后输入如下C语言语句:includestdio.h>intmain(){printf(helloworld!n);}到此,按esc键退出编辑状态,再输入一个冒号(shift+冒号分号那个键),紧跟着输入wq,即输入:wq按回车,即推出vim编辑器...

linux编程c语言怎么保存linux下编程c语言
1、进入linux系统,创建C文件“vimtest.c”同时进入vim编辑界面,也可以利用指令“touchtest.c”创建后,然后“vimtest.c”进入vim编辑界面。2、vim编辑界面,由“ESC”建来切换三种模式,一般模式:在Linux终端中输入“vim文件名”就进入了一般模式,但不能输入文字。编辑模式:在一般模式下按i就会进入...

在Linux下如何开发C程序?
1.利用编辑器把程序的源代码编写到一个文本文件中。比如编辑test.c程序内容如下:\/*这是一个测试程序*\/ include<stdio.h> int main(void){ printf("Hello Linux!");} 2.用C编译器GCC编译连接,生成可执行文件。gcc test.c 编译完成后,GCC会创建一个名为a.out的文件。如果想要指定输出文件...

蓬莱市13779574240: linux如何自己写头文件 -
纵蔡铋镁: 在Linux下面,如果要编译一个C语言头文件,,要使用GNU的gcc编译器,以一个实例来说明如何使用gcc编译器: 假设有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv){ printf("Hello Linux\n");} 要编译这个程序,只要在命令行...

蓬莱市13779574240: linux终端下如何进行C语言编译 -
纵蔡铋镁: 1、首先在linux下判断是否安装gcc编译器,直接执行:gcc -v,判断是否安装gcc.2、然后需要在代码框内写一个简单的C源程序. 3、在程序中使用了C语言中的数学开方函数,sqrt(),所以需要引入math.h头文件. 4、写完源程序之后,我们对其进行编译,如果使用通常的编译语句,【gcc math.c -o math】进行编译,会出现错误;大概的意思就是不认识sqrt这个东西. 5、所以需要使用正确的命令:【gcc math.c -lm -o math】;这样才能编译正确.

蓬莱市13779574240: 到底怎么在Linux里编写c程序啊? -
纵蔡铋镁: 在linux下通常使用gedit或vim直接编写.c程序,然后通过gcc指令编译.以Ubuntu系统为例,详细过程如下: 1、进入桌面Temp文件夹 2、右键新建空白文件 3、将文件命名为hello.c 4、进入hello.c,开始编写代码(默认gedit为编辑器) ...

蓬莱市13779574240: Linux下如何编译,运行C程序?需要安装编译器吗 -
纵蔡铋镁: 首先一定要安装 gcc (或者 cc )编译器.然后在 Linux 系统下,首先使用 vi 全屏幕编辑程序编辑一个后缀名为 .c 的文件,然后使用 gcc 编译器对你的 C 语言源程序进行编译、连接.最后才能够运行生成后的运行文件(如果你的源程序没有任何编译错误的话).当然了,在 gcc 的编译过程中,会有很多选择项.这个就是靠编程经验了.举例如下:gcc test.c -o myrunfile ( -o 选项指定输出的运行文件名为:myrunfile,如果不指定 -o 选项的话,缺省的运行文件名为:a.out)

蓬莱市13779574240: 在linux 终端 下如何编译整个c项目 -
纵蔡铋镁: linux终端下,编译C语言程序步骤为:采用vi进行源代码编写,编写完成后,:wq存盘退出,如:vi test.c 在命令行下,运行gcc编译程序,生成执行码,如:gcc -o test test.c-o 表示指明生成的执行码名称 运行编译后的执行码./test

蓬莱市13779574240: 如何在linux下编译,执行c程序 -
纵蔡铋镁: 1.编译单个源文件 [例如]在屏幕上打印"Hello,Linux." [源代码]#include<stdio.h #include<stdlib.h int main(int argc,char **argv){printf("Hello,Linux.\n");exit(0);}将源文件保存为hello.c,开始进行编译 $gcc -o hello hello.c 编译成功完成后,在当前...

蓬莱市13779574240: 怎样在linux系统中编译c语言 -
纵蔡铋镁: Linux系统中编译C语言,用的是gcc编译器,Linux系统如果已经安装了gcc编译器,系统中就会有一个gcc命令,在Linux系统编译C语言就是在命令行用gcc命令来编译的,编写C语言程序用gcc命令编译在Linux中是很常见的,所以gcc命令的用法很重要,网上有专门的教程,可以大致学习一下.

蓬莱市13779574240: Linux下编写c语言头文件,编译时出现“函数未定义” -
纵蔡铋镁: 出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错.根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接.方法如下 gcc -c main.c # -c参数的作用是让gcc只编译,不链接 gcc -c test.c gcc -o main main.o test.o # 将编译好的目标代码链接当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)

蓬莱市13779574240: linux下c编程,怎么编译?
纵蔡铋镁: 用gcc进行编译gcc -Wall hello.c -o hello 生成可执行文件hello ./hello执行程序 -g 产生编译信息,-c产生目标文件 -I添加头文件目录 -L 添加库目录 g++用于编译cpp文件

蓬莱市13779574240: linux下,C语言头文件在哪 -
纵蔡铋镁: 一、 C标准库头文件,以及Linux的标准库文件的对应头文件,默认放在/usr/include下. 如图: 标识出了最常用的几个头文件. 二、 自定义头文件,或者集成头文件,需要在编译的时候指定.可以在命令行中指定,也可以在makefile中指定. 指定自定义头文件路径方式为: -IPATH1 -IPATH2... 如当前目录下的inc文件夹,指定为头文件, 那么在编译a.c时,可以命令写作: gcc a.c -I./inc -o a.out

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网