出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。
根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。
方法如下
gcc-cmain.c#-c参数的作用是让gcc只编译,不链接
gcc-ctest.c
gcc-omainmain.otest.o#将编译好的目标代码链接
当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)
㈡ linux c语言如何快速知道函数的头文件
1、要用到unistd.h头文件。
2、Write函数用法:write函数所在的头文件为 <unistd.h>write有两种用法。一种是:ssize_twrite(int handle, void *buf, int nbyte);handle 是文件描述符;buf是指定斗裂的缓冲区,即指针,指向一段内存单元;nbyte是要写入文件指定的字节数;返回值:写入文档的字节数(成功);-1(出错)write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错误时返回-1.另一种是:write(const char* str,int n)str是字符指针或字符数组,用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。write(侍销迹"string",strlen("string");表示输出字符串常量3、程序示例:
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<sysstat.h>
#include<io.h>
#include<string.h>
intmain(void)
{
int*handle;charstring[40];
intlength,res;/*Createafilenamed"TEST.$$$".If"TEST.$$$"alreadyexists,itwillbeoverwritten.*/
if((handle=open("TEST.$$$",O_WRONLY|O_CREAT|O_TRUNC,S_IREAD老并|S_IWRITE))==-1)
{
printf("Erroropeningfile. ");
exit(1);
}
strcpy(string,"Hello,world! ");
length=strlen(string);
if((res=write(handle,string,length))!=length)
{
printf("Errorwritingtothefile. ");
exit(1);
}
printf("Wrote%dbytestothefile. ",res);
close(handle);return0;}
㈢ c语言long long型整数在windows和linux下的输出方法
在Windows和Linux系统中输出c语言中的long long型整数时,我们可以选择将整数转换为字符串,然后使用字符串的输出方法进行显示。这不仅适用于Windows,也适用于Linux操作系统。
值得注意的是,long long型整数在不同编译器下的表现可能存在差异。LONGLONG实际上是int64类型,在winnt.h头文件中定义为typedef __int64 LONGLONG。
为了正确输出long long型整数,我们需要了解__int64类型在格式化输出时使用的格式符。通过查阅MSDN文档,我们得知在Windows环境下,__int64类型应使用%I64d作为格式符进行有符号数的输出。
对于无符号的ULONGLONG类型,其输出格式符为%I64u。这些格式符能够确保在不同操作系统中正确地显示long long型整数的值。
通过这种方式,我们可以在Windows和Linux系统中实现对long long型整数的输出,确保程序的跨平台兼容性。
需要注意的是,不同的编译器可能对long long型整数的支持程度不同,因此在实际应用中,需要根据具体情况调整代码。
总结来说,通过将long long型整数转换为字符串,并结合特定的格式符进行输出,可以在Windows和Linux系统中实现对long long型整数的正确显示。
㈣ linux系统能够编写c语言吗
可以打开一个终端,键入gcc --version。 如果可以看到gcc的版本号,则说明可以编译。否则需要手动安装。
要编译C语言程序,一般的命令为:
gcc <C_FILES> -o <TARGETFILE> <OPTIONS> -I<INCLUE_PATH>
C_FILES: 需要编译的源文件列表,如果有多个,用空格分隔。
TARGETFILE:要生成的目标文件。
OPTIONS:编译选项列表,具体可以通过man gcc查看。
INCLUE_PATH:自定义头文件路径,如果有多个,每个路径前面都要加-I。