Ⅰ gcc 編譯c的多文件程序問題
不怕麻煩的話呢,可以調整#include結構來讓各c文件相連。。
建議呢,把類型與函數的聲明整理到特定的.h文件中,然後用#ifndef來使其只被包含一次,然後,在用到其它文件中實現的函數的時候將相應的.h文件include進來就好。這樣呢,編譯的時候可以單個文件逐一編譯:
gcc -c main.c -o main.o
gcc -c del.c -o del.o
gcc -c insert.c -o insert.o
參數-c意思是只編譯不連接,-o是名命輸出文件。
全部編譯成.o文件無誤後,再將所有的.o文件相連:
gcc main.o del.o insert.o -o prog
就可以生成prog了。
然後舉個例子說明處理.h文件:
比如這個create.c。裡面定義了一個struct和一個函數。那麼就可以寫create.h如下:
#ifndef __CREATE_H__
#define __CREATE_H__
struct student
{
long num ;
float score;
struct student *next;
};
struct student *creat(void);
#endif
然後呢,因為student這個struct在這個.h文件里已經聲明了,所以create.c里只要寫#include "create.h",而在用到這個struct或者這個函數的場合,也只要這樣簡單一句就可以了。而.h文件開頭的#ifndef可以保證同一個h文件不會被多次包含。當然,如果編譯器支持的話,用#pragma once也許會比#ifndef更省事一些。
以上。
Ⅱ GCC問題:兩個.C文件編譯成一個.O文件
直接這么做的話,不可以。
不過你可以寫一個.c文件,裡面
#include "xxx.c"
#include "yyy.c"
這樣,然後再編譯,就能變成一個.o了
Ⅲ 如何編譯C文件
編譯C文件用GCC。
編譯C文件常用方法:
單個文件:
g++
file.cpp
這是最簡單形式,預設輸出為a.out,可以用-o命令指定輸出文件,比如g++
file.cpp
f.out
多個文件:
g++
-c
1.cpp
-o
1.o
g++
-c
2.cpp
-o
2.o
g++
1.o
2.o
-o
prog.out
鏈接成可執行文件:
一般用g++
-o
file
file.cpp
多個文件是g++
-o
file
file1.cpp
file2.cpp
...
編譯C++不是用GCC而是G++.
如果用GCC能編譯但不能鏈接.
多個文件:
1.編譯多個文件,但不連接:
g++
file1.cpp
file2.cpp
會生成兩個文件:file1.o,
file2.o
2.連接:
g++
-o
outFileName
file1.o
file2.o
會生成一個可執行文件:outFileName。
如果想,一步就完成編譯和連接,那麼:
g++
-o
outFileName
file1.cpp
file2.cpp
-o選項控制是否連接。
Ⅳ gcc多文件編譯 三個文件:tree.c tree_fun.c tree.h 我怎麼把他們編譯成一個可執行文件
寫一個Makefile文件,如下:
SOURCE = tree.c tree_fun.c
DEST = main
GCC = gcc
FLAGS =
all:
$(GCC) $(SOURCE) $(FLAGS) -o $(DEST)
這樣就可以直接make,可以編譯這三個文件了,編譯成的可執行文件是main
Ⅳ linux下 c語言多文件編譯
如果有多個源文件,基本上有兩種編譯方法:
[假設有兩個源文件為test.c和testfun.c]
1. 多個文件一起編譯
用法:#gcc testfun.c test.c -o test
作用:將testfun.c和test.c分別編譯後鏈接成test可執行文件。
2. 分別編譯各個源文件,之後對編譯後輸出的目標文件鏈接。
用法:
#gcc -c testfun.c //將testfun.c編譯成testfun.o
#gcc -c test.c //將test.c編譯成test.o
#gcc -o testfun.o test.o -o test //將testfun.o和test.o鏈接成test
以上兩種方法相比較,第一中方法編譯時需要所有文件重新編譯,而第二種方法可以只重新編譯修改的文件,未修改的文件不用重新編譯。
Ⅵ c語言中如何同時運行多個源文件
在C語言中,可以使用多個源文件來編寫一個程序。可以將程序分成多個模塊,每個模塊對應一個源文件。在使用多個源文件時,可以採用以下兩種方法來同時編譯和運行多個源文件:
將祥祥純多個源文件編譯成一個可執行文件
在這種方法中,可以使用一個命令將多個源文件編譯成一個可執行文件。例如,假設有兩個源文件main.c和func.c,可以使用以下命令將它宴拍們編譯成一個可執行文件:
go
gcc main.c func.c -o program
其中,gcc是編譯器的命令,main.c和func.c是源文件,-o program指定可執行文件的名稱為program。
將多個源文件編譯成多個目標文件,然後鏈接成一個可執行文件
在這種方法中,可以先將多個源文件分別編譯成目標文件,然後再將它們鏈接成一個可執行文件。例如,假設有兩個源文件main.c和func.c,可以使用謹咐以下命令將它們分別編譯成目標文件:
r
gcc -c main.c
gcc -c func.c
其中,-c選項表示只編譯源文件,不進行鏈接。編譯後會生成兩個目標文件main.o和func.o。
然後,可以使用以下命令將兩個目標文件鏈接成一個可執行文件:
go
gcc main.o func.o -o program
其中,main.o和func.o是目標文件,-o program指定可執行文件的名稱為program。
這兩種方法都可以同時編譯和運行多個源文件,具體使用哪種方法可以根據實際情況選擇。
Ⅶ 怎樣用gcc 一次性編譯多個objective c文件啊
你好!
gcc
-oexe
-O0
-g3
-Wall
a.cpp
b.cpp
c.cpp
...,不過我還是建議吃用cmake這種跨平台自動化編譯工具。很方便的!
如果對你有幫助,望採納。
Ⅷ 用 gcc 如何編譯多個 c 文件
已經cd到ds目錄,用如下命令
gcc -I./a -I./b a.c b.c main.c -o main