c庫編譯
標准庫已經是編譯好的程序了,一般是.obj文件組成,編譯程序將庫文件取出,然後連接好地址、分配內存,不會重新編譯的,編譯的是你寫的源文件。
換句話說,像printf這樣的函數已經編譯好了等你調用,已經是機器碼了。
② 如何編譯C和C++代碼寫的動態庫
來來來,新技能,linux下構建lib庫的步驟:
1、准備庫函數源文件;
my_add.c
int add(int a, int b){ printf("Here is my_add.c\n"); return a+b;}
my_sub.c
int sub(int a, int b){ printf("Here is my_sub.c \n"); return a-b;}
2、生成目標文件;
gcc -c my_add.c my_sub.c
會生成my_add.o,my_sub.o
3、對目標文件歸檔;
ar crv libmylib.a my_add.o my_sub.o
會生成libmylib.a
4、寫頭文件;
mylib.h
#ifndef _MY_LIB_H_#define _MY_LIB_H_ int add(int a, int b);int sub(int a, int b); #endif
5、測試程序;
test.c
#include "mylib.h"int main(){ printf(" MAIN:%d\n", add(12,24));}
6、編譯測試程序;
gcc test.c -L. -lmylib
答案摘自:log.anycle.com/skill/219.html
③ C語言怎麼編譯呀
在本機上搭建IDE開發環境,在IDE中導入編譯器,就可以本地編譯了。
把代碼在本地寫好,編譯過之後,運行樣例沒問題後,再上傳的網站上,網站上是有編譯器的,你選擇之後會自動編譯。
④ 怎樣用c語言編譯
C編譯的整個過程很復雜,大致可以分為以下四個階段:
預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
匯編階段將匯編語言翻譯成機器指令。
鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
⑤ C語言編譯一個程序
簡單啊 在Visual c++下編譯啊 ,TC識別不了中文
#include<stdio.h>
#include<string.h>
void main()
{
char s[30];
printf("輸入\"你是一隻豬\"");
while(1)
{ gets(s);
if(strcmp(s,"你是一隻豬")==0)
{
printf("終於承認你是豬了吧!");
return;
}
else
gets(s);
}
}
⑥ c語言中如何編譯頭文件啊
你這是添加頭文件,而不是編譯頭文件
TC2.0裡面沒有滑鼠的使用
添加必須使用#include
命令
一般把你寫的頭文件或文件(注意,不光是頭文件可以加入)放入你的項目或工程文件夾中
然後使用
#include
「文件名.擴展名"
添加文件(注意:使用的是
"
"
而不是<
>
包含
如果你所做要添加的文件是你們公司的一個文件庫里的,建議你更改TC查詢路徑,這樣就能省去要放到同一目錄下的要求。
至於如何編譯
你可以查查TC的運行方式
⑦ 目前主流的C語言編譯軟體是什麼
C語言相比其他很多新興的、復雜的語言,語法還是簡單一些,較好實現的。
所以在C語言幾十年的發展中出現了各式各樣的編譯器,還有一些容易被誤解為編譯器的IDE。
這里列舉幾個主流的:
GCC
毫無疑問,GCC幾乎是unix及linux系統中最通用的編譯器套件,幾乎所有的linux發行版都預裝了GCC作為C語言的默認編譯器。除了對C語言的支持,GCC還支持C++、Objective-C等多種語言。GCC早在1987就由Richard Stallman作為GNU計劃的一部分發布。
Clang
Clang是近幾年新興的C/C++以及Objective-C的編譯器,Apple是其主要投資者,其最初的開發者已加盟Apple。雖說是新興,但其對C/C++標準的支持不亞於GCC等老牌編譯器,並且外部介面和GCC完全兼容,並且因其模塊化、錯誤提示完善等優點已經越來越受到重視。一些如FreeBSD等項目已將clang作為默認編譯器。
其實Clang並不是一個完整的編譯器,而是作為同一批開發者開發的另一個備受關注的虛擬機(類似於JVM)的llvm的一個前端開發,只是負責將C語言源碼編譯為llvm IR的中間語言,再由llvm編譯為目標代碼,這樣做可以讓其可移植性更好。
Microsoft Visual C++
作為擁有可視化集成編程系統的編譯器,VC被很多使用Windows作為開發環境的初學者使用。詳見網路的介紹
http://ke..com/view/2070966.htm?fromtitle=vc&fromid=7792954&type=syn#viewPageContent
⑧ C語言如何生成庫文件
有一些代碼,我們編程時經常用到,或者我們對某些部分很熟悉,並寫出了一些可用的介面。這時,我們會考慮把這些c文件做成一個lib庫,以方便自己使用,或這給別人調用。
我這里介紹下在vc++6.0下如何來製作靜態庫:
第一步:創建一個工程,選擇Win32Static Library,輸入工程名。這時就創建好了。
第二步:工程創建好了,再點擊新建,這時選擇文件,選擇c++ source file選項,創建一個.c
文件。
在這個文件中,你可以寫入你要做成庫的c函數。當然,可以繼續創建其他c文件,然後將要供外部使用的介面單獨放到頭文件中,一般而言,一個c文件對應一個頭文件。
第三步:完成以上步驟後,我們就可以生成庫了。事實上,我們點擊編譯即可,這時就可以生成.lib文件了。
一般情況下,是可以正常生成lib文件的。有頭文件和lib文件就可以給別人用了。然後我們可以寫一個測試函數來試試可不可以使用。
要調用生成的lib中的函數,就要引入頭函數。這時,你把lib和頭文件放入當前工程中,但build的時候卻顯示了連接錯誤。那是因為你沒有把lib文件包含進來。加入下面這句話即可了:
#pragma comment(lib, "mylib.lib ")
Ok,自己的lib庫就這樣做成了。以後可以隨便調用了。
⑨ C語言,文件編譯
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",a,b,c);
printf("%d",max(a,b,c));
printf("%d",min(a,b,c));
printf("%d",sum(a,b,c));
printf("%d",CJ(a,b,c));
}
int max(a,b,c)
{
if(a>=b&&a>=c)
return a;
else if(b>=a&&b>=c)
return b;
else if(c>=a&&c>=b)
return c;
}
int min(a,b,c)
{
if(a<=b&&a<=c)
return a;
else if(b<=a&&b<=c)
return b;
else if(c<=a&&c<=b)
return c;
}
int sum(a,b,c)
{
return(a+b+c);
}
int CJ(a,b,c)
{
return(a*b*c);
}