① vc6.0中,xx.h、xx.cpp和main.cpp一起怎麼編譯
依次點擊菜單
工程project
添加到工程add to project
文件file
② 如何在編譯main函數之後順序編譯其餘cpp文件
在VS2010中的C++模塊,我寫了如下程序(簡單還原):
第一步: 設定constant.cpp文件,用來定義一些全局變數和自定義函數;
第二步: 設定headline.h文件,用來聲明在constant.cpp中定義的全局變數和自定義函數,同時定義了一些宏(類如PI);
第三步: 設定main.cpp文件,作為整個項目的主函數——int main();
第四步: 設定initial.cpp文件,作為整個項目的次函數1——void main();
第五步: 設定force.cpp文件,作為整個項目的次函數2——void force();
第六步: 設定integrate.cpp文件,作為整個項目的次函數3——void integrate();
③ C++編譯時,是從哪一個cpp開始的,然後各cpp的編譯順序是如何定的
編譯順序由你在編譯設置里決定
其實編譯順序並不重要
最終的連接過程是產生可執行文件的最終步驟,只要保證連接時所有的目標文件都存在就行了
比如一個小程序包括兩個文件
//main.cpp
extern int a;
int main(void){
printf("%d\n",a);
a=5;
printf("%d\n",a);
}
//var.cpp
int a=2;
----
gcc -c main.cpp
gcc -c var.cpp//這兩步可以換過來
gcc main.o var.o//這兩個參數也可以換過來
輸出
2
5
④ c++如何編譯啊 ~
以linux系統為例:
1、在連網的情況下,在終端中使用root超級用戶許可權輸入以下命令:
sudo apt-get install g++
並回車即可安裝C++編譯器g++。
2、安裝完畢,即可開始新建我們的一個C++工程了。下面以一個hello工程為例,簡單地介紹如何編譯一個 C++工程。
3、登錄Linux系統,打開終端,在當前目錄下使用mkdir命令新建一個hello的目錄;然後使用cd hello進入hello目錄中,並使用vi工具新建hello.h、hello.cpp、main.cpp、makefile四個文件。四個文件的內容分別如下:
1. hello.h文件
#ifndef HELLO_H_
#define HELLO_H_
class Hello {
public:
void print();
};
#endif
2. hello.cpp文件
#include "hello.h"
#include <iostream>
using namespace std;
void Hello::print() {
cout<<"Hello, welcome to Redhat Linux os!"<<endl;
}
3. main.cpp文件
#include "hello.h"
#include <iostream>
using namespace std;
int main() {
Hello h;
h.print();
return 0;
}
注意:這三個文件要以空白行結束,否則編譯時會有警告信息。
4. makefile文件
# this is a makefile of the c++ project hello
# the standard c++ compiler in the Redhat linux is g++
# written by young on June 27th, 2009
TARGET = .
CC = g++
CFLAGS = -g
CFLAGC = -c
MAINC = main.cpp
HELLO = hello.cpp
OBJ = hello.o
INCLUDE = -I$(TARGET)
EXEC = $(TARGET)/main
all: $(EXEC)
$(EXEC): $(OBJ) $(MAINC)
$(CC) $(CFLAGS) $(OBJ) $(MAINC) $(INCLUDE) -o $@
rm -f $(OBJ)
@echo "<<<<<< $@ is created successfully! >>>>>>"
$(OBJ): $(HELLO)
$(CC) $(CFLAGC) $(HELLO) -o $@
clean:
rm -f $(EXEC)
注意: makefile文件中的命令行(紅色字體)一定要以Tab建開頭,否則編譯通不過。
寫好makefile文件後,即可編譯工程。在終端中輸入make命令,回車後將顯示如下信息:
g++ -c hello.cpp -o hello.o
g++ -g hello.o main.cpp -I. -o main
rm -f hello.o
<<<<<< main is created successfully! >>>>>>
這些信息說明工程已被正確編譯,當前目錄下將生成一個main的可執行文件。
同樣,你也可以不使用makefile文件,而直接在終端上輸入以下兩行命令:
g++ -c hello.cpp -o hello.o
g++ -g hello.o main.cpp -I. -o main
也可以編譯這個工程。
使用ls -l命令查看當前目錄下的所有文件,確實有一個main文件。
在終端中輸入./main,即可運行程序。
⑤ 如何編譯沒有main函數的C/CPP實現文件如何用連接器連接生成的.obj文件
加編譯選項 -c (或 /c ), 各種編譯器都有這種選項. 可用 -? , /?, /h 查玄詢
⑥ 貪吃蛇游戲包含有main.cpp,snake.cpp,snake.h三個文件,要選擇哪個文件在VC6編譯和連接,步驟是什麼
任意一個cpp文件編譯,然後連接,或者直接連接,因為連接時會自動編譯所有cpp文件。
⑦ Qt 上面的main.cpp文件如何轉換為命令行編譯程序
如果環境沒有問題的話,在命令行執行 qmake 命令會生成makefile 文件,再執行make命令編譯
⑧ 多個cpp文件如何一起編譯
將函數的聲明放到頭文件,函數的定義放在cpp文件,之後再主函數中,將頭文件包含進來,進行聯編
⑨ 編譯一個CPP文件時,出現這個錯誤怎麼辦
因為在工程編譯的時候各個.cpp文件依次單獨編譯,最後才連接到一起,當在編譯main.cpp文件時,看到main.cpp文件中有#include「2.cpp」文件時就把2.cpp中的內容和main.cpp一起編譯生成main.obj文件。別忘了2.cpp文件也是.cpp文件也要單獨編譯,編譯完2.cpp文件生成2.obj文件後。再將所有編譯後的.obj文件連接到一生成.exe文件。這時就會發現2.obj中的內容main.obj中也有(因為main.cpp中#include「2.cpp」)。所以會出現重復定義的錯誤。
這時你可能又會想到把2.cpp文件改名為2.h在main.cpp文件中#include「2.h」不就行了。因為.h文件不會單獨編譯。確實是這樣。將2.cpp改為2.h後不管工程目錄中有沒有添加2.h文件都可以。可是前面說了.h文件中最好只放聲明。(不失為一個解決問題的辦法)
extern可以置於變數或者函數前,以表示變數或者函數的定義在別的文件中,提示變壓器遇到此變數和函數時在其他模塊中尋找其定義。另外,extern也可用來進行鏈接指定。
關於extern更詳細的解釋請看網路
所以我們只需這樣:如果在1.cpp中要調用2.cpp中的函數,不要在1.cpp中#include「2.cpp」,只需在1.cpp中聲明一下要調用的函數,並且聲明前加關鍵字extern
⑩ G:\C++編譯例子\00702\main.cpp(14) : error C2065: 'rea' : undeclared identifier
你可以同時編譯鏈接這2個源程序,或先分別編譯成 .obj 再鏈接。
假定你的 main 在 trangle.cpp 里
例如:
cl trangle.cpp circle.cpp
如果 main 在 第3 個文件里 ,你就 3 個 源程序 一起編譯鏈接:
cl my_main.cpp my_triangle.cpp my_circle.cpp