出現該錯誤的原因為編譯時只變編譯了源文件的一部分,故在鏈接時無法從編譯好的目標代碼中找到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。