gcc編譯鏈接兩個文件的語句
① 用 gcc 如何編譯多個 c 文件
已經cd到ds目錄,用如下命令
gcc -I./a -I./b a.c b.c main.c -o main
② 請問如何使用gcc編譯多個文件
問題1:gcc a.c main.c -o a.out
問題2:可要可不要,視具體情形而定
問題3:沒有必要
③ gcc編譯兩個文件的問題
是的,這種情況下,你只需要編譯主文件就可以了。
#include 的作用相當於是將包含的文件的內容直接粘貼的#include的位置,即將多個文件連在一起後進行解析並編譯。
如果不用#include包含函數文件,編譯時你就需要用 gcc -o a.out a.c b.c進行編譯了。
區別在於,如果在a文件中,定義一個static變數或者函數,如果使用#include方式,在b.c裡面是可以引用的,因為#include會把a和b的內容連接在一起後進行編譯;而如果不使用#include,在b.c中就訪問不到a.c中的static變數或者函數。
另外,雖然可以運行,但編程中最好養成良好的習慣,不要在c文件中#include其他的c文件。
希望對你有用。
④ gcc編譯和鏈接的問題
GCC 調用預處理程序即展開在源文件中定義的宏,並向其中插入「#i nclude」語句所包含的內容,它只會去你add.c對應的頭文件,知道有add函數的聲明方式,而不會去正理add.c
⑤ c語言在gcc中兩個文件同時編譯
就是寫一個main函數測試寫的函數功能是否正確。
新建一個文件test.c,內容如下
#include<stdio.h>
void main()
{
char str[]={"I Am A Student!\n"};
char ch='S';
int count=0;
printf("%d\n",count_standard(str, char ch, count));
}
編譯:gcc test.c 2.c
執行:./a.out
⑥ 怎樣用gcc編譯在不同兩個文件夾下的程序
是的,這種情況下,你只需要編譯主文件就可以了。#include的作用相當於是將包含的文件的內容直接粘貼的#include的位置,即將多個文件連在一起後進行解析並編譯。如果不用#include包含函數文件,編譯時你就需要用gcc-oa.outa.cb.c進行編
⑦ linux下編譯程序,如何同時連接兩個庫文件,gcc命令應該怎麼寫。
-L後的應該是路徑,本例應該是-L/usr/lib/,-l後應該是庫的名字,注意,這里庫的名字是吧庫"libapi.so"去掉前面的"lib"和後面的".so",應該是-lapi.而且一個-L和-l對應一個庫.所以你的應該改為:
gcc -g -o test.exe test.c -L/usr/lib/ -lapi -L/usr/lib/ -lpk11.
還有,.exe文件是windows下的可執行文件格式,linux下不這么用,但是就本例而言也能運行.
⑧ gcc如何編譯多文件
你這里有幾處問題。
fun.h 加頭文件衛士,頭文件中聲明全局變數要用static修飾。
#ifndefFUN_H
#defineFUN_H
staticintg=10;
voidfun();
#endif
其他文件中引用這個文件的變數,extern int g;
mian.c
#include<stdio.h>
#include"fun.h"
externintg;
voidmain()
{
printf("%d ",g++);
fun();
}