1. 程式人生 > >linux下如何編譯c++工程專案

linux下如何編譯c++工程專案

首先,你必須有一個Linux開發環境,這樣才能進行C++開發。筆者用的是安裝在虛擬機器中的Ubuntu 9.04,Ubuntu作業系統是沒帶C++編譯器g++。在連網的情況下,在終端中使用root超級使用者許可權輸入以下命令:
sudo apt-get install g++
並回車即可安裝C++編譯器g++。

安裝完畢,即可開始新建我們的一個C++工程了。下面以一個hello工程為例,簡單地介紹如何編譯一個 C++工程。

登入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 inthe 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 [email protected]
rm -f $(OBJ)
@echo "<<<<<< [email protected] is created successfully! >>>>>>"
$(OBJ): $(HELLO)
$(CC) $(CFLAGC) $(HELLO) -o [email protected]
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,即可執行程式。

相關推薦

linux如何編譯c++工程專案

首先,你必須有一個Linux開發環境,這樣才能進行C++開發。筆者用的是安裝在虛擬機器中的Ubuntu 9.04,Ubuntu作業系統是沒帶C++編譯器g++。在連網的情況下,在終端中使用root超級使用者許可權輸入以下命令:sudo apt-get install g+

linux編譯c語言教程

準備工作 - Linux系統 - 懂得Linux系統下編輯器vim/vi軟體的使用 - 懂得簡易的c語言程式設計(初次學習的同學可以直接複製文章末尾的原始碼) 總結一下:有Linux系統,會使用Linux系統下的文字編輯器,有一點c語言基礎即可。 建立c語言檔案並編譯

單目跟蹤位姿產品研發(二)----在linuxc++工程打包成動態庫so檔案API

       單目跟蹤位姿專案由對方公司提供應用場景,我方研發核心演算法,通過c++實現功能,然後對方公司通過java\js來開發炫酷的介面,共同合作完成,最終對方公司負責銷售推廣,推向市場。因此,涉及到java介面呼叫c++核心程式碼的問題。 現記錄

LINUX編譯c++11的程式碼

 C++11,(即ISO/IEC 14882:2011),是目前的C++程式語言的最新正式標準。它取代了第二版標準(第一版公開於1998年,第二版於2003年更新,分別通稱C++98以及C++03,兩者差異很小)。新的標準包含核心語言的新機能,而且擴充套件C++標準程式庫。C++11新標準

Linux編譯C++ 指令

單個原始檔生成可執行程式 下面是一個儲存在檔案 helloworld.cpp 中一個簡單的 C++ 程式的程式碼: /* helloworld.cpp */ #include <iostream> int main(int argc,char *ar

linux編譯C++程式

一、GCC(GNU Compiler Collection)是Linux下最主要的編譯工具,GCC不僅功能非常強大,結構也異常靈活。它可以通過不同的前端模組來支援各種語言,如Java、Fortran、Pascal、Modula-3和Ada     &nbs

Linux編譯GitHub開源專案caffe-android-lib詳細教程

目錄 一、背景 一、背景 要開發一款在Android平臺下的人臉識別軟體,需要用到Android Caffe框架跑模型,需要生成不同平臺(armeabi、armeabi-v7a、arm64-v8a、x86、x86_64)下

Linux 編譯C++/C以及常用的幾種命令(ubuntu)

安裝命令:sudo apt-get install build-essential sudo apt-get install gcc sudo apt-get install g++ C的編譯執行 現在我們在文字編輯器裡寫一個C的簡單的程式(好像所有學習C或者C++的書都會出現)#include <s

關於如何在make一個LinuxC/C++工程時,自動新增版本號、編譯日期等資訊

本篇的目的:在makefile裡,將系統當前的時間傳遞進待編譯的C/C++工程中,用以指示編譯執行的時間,以及版本資訊等。 不多說了,先來看效果: 當前時間:2017.01.20  0:29 編譯完成後執行效果: [email protected]:~/Desk

Linux使用make構建一個C++工程專案

Linux下構建一個C++工程專案 在Windows系統下,我們可以使用Visual Studio等IDE幫助我們構建一個C++工程專案,本文在Linux系統環境中,使用make和vim構建一個C++工程專案 編譯環境與工具 Ubuntu 14.04

Linux 編譯Xerces-c++

linu ida 共享 ++ blank 這樣的 gunzip pad -c 原文地址: http://blog.csdn.net/chenlanmin/article/details/2200064 按照 doc/html 文件夾中的詳細指導編譯 Xerces-C++ 共

知識積累--linux--安裝nodejs--執行window編譯過的專案

前景提要:       在本地windows環境下,做了一個專案,需要使用nodeJs環境,於是乎本地安裝了下nodeJs也配置了環境變數,專案執行著也沒有問題,現要將專案部署到linux的線上環境,在安裝nodeJS和執行npm run build,npm run

Linux編譯ffmpeg報錯gcc is unable to create an executable file C compiler test failed.

程式碼報錯資訊: [[email protected] ffmpeg-3.2.2]# ./configure --enable-shared --prefix=/usr/local/ffmpeg gcc is unable to create an executable

sublime在linux系統編譯C++的sublime.build檔案

{     "shell_cmd": "g++ -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\"",     "file_rege

linux環境編譯C++ 程式

在linux環境下編譯C++ 程式 單個原始檔生成可執行程式 下面是一個儲存在檔案 helloworld.cpp 中一個簡單的 C++ 程式的程式碼: 單個原始檔生成可執行程式 /* helloworld.cpp */ #include <iostream> int main

LinuxC/C++開發基礎(編寫makefile、編譯C/C++、連結、可執行程式)

本文重點介紹C/C++原始碼工程的編譯連結,編譯器gcc/g++的安裝配置略過... 1. 安裝配置gcc g++ 2. 建立檔案 test.h /test.c / file.h  / file.cpp  3. 編譯.o庫: gcc -c / g++ -c     連結生成靜

Linux編譯mongodb以及C++客戶端驅動

想在Linux下編譯一下mongo和它的C++驅動,網上一堆教程,官方一堆文件,實現起來依舊困難重重。我就很納悶了,本來mongodb就是C++寫的,為什麼不直接提供出驅動,而java,C#之類的,倒是直接提供了jar包和dll檔案。今天終於編譯成功,趕緊記錄下來。 Lin

mongodb資料庫 linux編譯mongodb的c++驅動

由於工作專案開發的需要 要使用mongodb資料庫  需要手動編譯mongo的c++庫,花費了大概兩天的時間,終於搞定,主要是上網搜資料。以下是本人收藏的幾篇部落格 https://mongodb.g

WindowsCMake編譯VisualStudio2017工程專案

下載以下三個原始碼包: 下載頁面:LLVM Download Page LLVM Clang compiler-rt 將llvm source code解壓。 將cfe(clang source code)解壓,資料夾重新命名為clang,然後放置到llv

Linux編譯Cocos2dx專案

今天在linux下用cmake編譯cocos2dx時總是報錯,查看了錯誤資訊,有一些lib是not found的,是dependencies的問題,cocos2dx自帶的安裝dependencies的指令碼有問題 我懷疑是sudo add-apt-repo