導航:首頁 > 源碼編譯 > gcc指定編譯目錄

gcc指定編譯目錄

發布時間:2022-07-21 06:47:20

Ⅰ 如何指定Makefile編譯目標文件到指定目錄

直接指定就行,例如有如下C源程序:

$ cat tst.c
#include <stdio.h>
main()
{
printf("good morning.\n");
}

一般的資料上講,用命令gcc -o tst tst.c生成可執行程序tst.

直接指定到你希望的目錄就行,例如:
$ gcc -o /tmp/tst tst.c
可執行程序tst就生成在/tmp目錄下面,而不再是生成在當前目錄下面。

Ⅱ 如何指定GCC的默認頭文件路徑

看下文的紅色部分。 有大量的環境變數可供設置以影響 GCC 編譯程序的方式。利用這些變數的控制也可使用合適的命令行選項。一些環境變數設置在目錄名列表中。這些名字和 PATH 環境變數使用的格式相同。特殊字元 PATH_SEPARATOR (安裝編譯程序的時候定義)用在目錄名之間。在 UNIX 系統中,分隔符是冒號,而 Windows 系統中為分號。 C_INCLUDE_PATH 編譯C 程序時使用該環境變數。該環境變數指定一個或多個目錄名列表,查找頭文件,就好像在命令行中指定 -isystem 選項一樣。會首先查找 -isystem 指定的所有目錄。 ==> 也見 CPATH 、 CPLUS_INCLUDE_PATH 和 OBJC_INCLUDE_PATH 。 COMPILER_PATH 該環境變數指定一個或多個目錄名列表,如果沒有指定 GCC_EXEC_PREFIX 定位子程序,編譯程序會在此查找它的子程序。 ==> 也見 LIBRARY_PATH 、 GCC_EXEC_PREFIX 和 -B 命令行選項。 CPATH 編譯C 、 C++ 和 Objective-C 程序時使用該環境變數。該環境變數指定一個或多個目錄名列表,查找頭文件,就好像在命令行中指定 -l 選項一樣。會首先查找 -l 指定的所有目錄。 ==> 也見 C_INCLUDE_PATH 、 CPLUS_INCLUDE_PATH 和 OBJC_INCLUDE_PATH 。 CPLUS_INCLUDE_PATH 編譯C++ 程序時使用該環境變數。該環境變數指定一個或多個目錄名列表,查找頭文件,就好像在命令行中指定 -isystem 選項一樣。會首先查找 -isystem 指定的所有目錄。 ==> 也見 CPATH 、 C_INCLUDE_PATH 和 OBJC_INCLUDE_PATH 。 DEPENDENCIES_OUTPUT 為文件名設置該環境變數會讓預處理程序將基於依賴關系的 makefile 規則寫入文件。不會包括系統頭文件名字。 如果環境變數設置為單名,被看作是文件名字,而依賴關系規則的名字來自源文件名字。如果定義中有兩個名字,則第二個名字是用作依賴關系規則的目標名。 設置該環境變數的結果和使用命令行選項 -MM 、 -MF 和 -MT 的組合是一樣的。 ==> 也見 SUNPRO_DEPENDENCIES 。 GCC_EXEC_PREFIX 如果定義了該環境變數,它會作為編譯程序執行的所有子程序名字的前綴。例如,如果將變數設置為 testver 而不是查找 as ,匯編器首先會在名字 testveras 下查找。如果在此沒有找到,編譯程序會繼續根據它的普通名進行查找。可在前綴名中使用斜線指出路徑名。 GCC_EXEC_PREFIX 的默認設置為 prefix /lib/gcc-lib/ ,這里的 prefix 是安裝編譯程序時 configure 腳本指定的名字。該前綴也用於定位標准連接程序文件,包含進來作為可執行程序的一部分。 如果使用 -B 命令行選項,會重寫該設置。 ==> 也見 COMPILER_PATH 。 LANG 該環境變數用於指出編譯程序使用的字元集,可創建寬字元文字、串文字和注釋。 定義LANG 為 C-JIS ,指出預處理程序將多位元組字元按照 JIS (日語工業標准)字元進行解釋。 C-SJIS 可用來指出 Shift -JIS 字元而 C-EUCJP 指出日文 EUC 。 如果沒有定義 LANG ,或定義為不可識別,函數 mblen() 被用來確定字元寬度,而 mbtowc() 用來將多位元組序列轉換為寬字元。 LC_ALL 如果設置,該環境變數的值重寫 LC_MESSAGES 和 LC_CTYPE 的所有設置。 LC_CTYPE 該環境變數指出引用串中定義的多位元組字元的字元分類。主要用於確定字元串的字元邊界,字元編碼需要用引號或轉義符,可被錯誤地解釋為字元串的結尾或特殊字 符串。對 Australian English ,可將它設置為 en_AU ;對 Mexican Spanish ,可將它設置為 es_MX 。如果沒有設置該變數,默認為 LANG 變數的值,或如果沒有設置 LANG ,那就使用 C 英語行為。也見 LC_ALL 。 LC_MESSAGES 該環境變數指出編譯程序使用何種語言發出診斷消息。對 Australian English ,可設置為 en_AU ;對 MexicanSpanish ,可設置為 es_MX 。如果變數沒有設置,使用 LANG 變數的默認值,或如果沒有設置 LANG ,那就使用 C 英語行為。也見 LC_ALL 。 LD_LIBRARY_PATH 該環境變數不會影響編譯程序,但程序運行的時候會有影響。變數指定一個目錄列表,程序會查找該列表定位共享庫。只有當未在編譯程序的目錄中找到共享庫的時候,執行程序必須設置該變數。 LD_RUN_PATH 該環境變數不會影響編譯程序,但程序運行的時候會有影響。該變數在運行時指出文件的名字,運行的程序可由此得到它的符號名字和地址。地址不會重新載入,因而可能符號引用其他文件中的絕對地址。這和 ld 工具使用 -R 選項完全一樣。 LIBRARY_PATH 該環境變數可設置為一個或多個目錄名字列表,連接程序會搜尋該目錄,以查找特殊連接程序文件,和由 -l (字母 l )命令行選項指定名字的庫。 由 -L 命令行選項指定的目錄在環境變數的前面,首先被查找。 ==> 也見 COMPILER_PATH 。 OBJC_INCLUDE_PATH 在編譯 Objective-C 程序的時候使用該環境變數。一個或多個目錄名的列表由環境變數指定,用來查找頭文件,就好像在命令行中指定 -isystem 選項一樣。所有由 -isystem 選項指定的目錄會首先被查找。 S

Ⅲ 如何給GCC指定編譯的地址

有兩種辦法
1. gcc D:\XXX\main.c 用這個命令來編譯你的C文件,把上面的目錄、文件換成你的。
2. 在CMD里,cd到D盤,然後cd到你的C文件目錄下,執行gcc main.c即可

Ⅳ 編譯gcc時可以指定 libstdc++.so.6 的存放位置嗎

--libdir 用於存放gcc編譯後的 lib 文件
但以後用這個gcc編譯其他的軟體, 程序還是去 /usr/local 這類目錄找 lib 文件,而不是設定的 libdir 找尋.

我得應用環境是 django + PyLucene, 現在就是 PyLucene 在 import 的時候說無法找到 libstdc++.so.6

Ⅳ gcc 怎麼把自己的庫加入目錄中

添加頭文件目錄
編譯選項:環境變數:C_INCLUDE_PATH / CPLUS_INCLUDE_PATH / OBJC_INCLUDE_PATH (任選其一)。添加庫文件目錄:編譯選項:指定文件,指定目錄。環境變數:LIBRARYPATH。

Ⅵ 如何指定gcc的默認頭文件路徑

gcc指定頭文件路徑及動態鏈接庫路徑

本文詳細介紹了linux 下gcc頭文件指定方法,以及搜索路徑順序的問題。另外,還總結了,gcc動態鏈接的方法以及路徑指定,同樣也討論了搜索路徑的順序問題。本文包含了很多的例子,具有很強的操作性,希望讀者自己去走一遍。
一.#include <>與#include 「」
#include <>直接到系統指定的某些目錄中去找某些頭文件。
#include 「」先到源文件所在文件夾去找,然後再到系統指定的某些目錄中去找某些頭文件。
二.gcc指定頭文件的三種情況:
1.會在默認情況下指定到/usr/include文件夾(更深層次的是一個相對路徑,gcc可執行程序的路徑是/usr/bin/gcc,那麼它在實際工作時指定頭文件頭徑是一種相對路徑方法,換算成絕對路徑就是加上/usr/include,如#include 就是包含/usr/include/stdio.h)
2.GCC還使用了-I指定路徑的方式,即
gcc -I 頭文件所在文件夾(絕對路徑或相對路徑均可) 源文件
舉一個例子:
設當前路徑為/root/test,其結構如下:
include_test.c
include/include_test.h
有兩種方法訪問到include_test.h。
1. include_test.c中#include 「include/include_test.h」然後gcc include_test.c即可
2. include_test.c中#include 或者#include 然後gcc –I include include_test.c也可
3. 參數:-nostdinc使編譯器不再系統預設的頭文件目錄裡面找頭文件,一般和-I聯合使用,明確限定頭文件的位置。
在編譯驅動模塊時,由於非凡的需求必須強制GCC不搜索系統默認路徑,也就是不搜索/usr/include要用參數-nostdinc,還要自己用-I參數來指定內核頭文件路徑,這個時候必須在Makefile中指定。
頭文件搜索順序:
1.由參數-I指定的路徑(指定路徑有多個路徑時,按指定路徑的順序搜索)
2.然後找gcc的環境變數 C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATH
3.再找內定目錄
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
庫文件,但是如果裝gcc的時候,是有給定的prefix的話,那麼就是
/usr/include
prefix/include
prefix/xxx-xxx-xxx-gnulibc/include
prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include
三.Linux指定動態庫路徑
眾所周知,Linux動態庫的默認搜索路徑是/lib和/usr/lib。動態庫被創建後,一般都復制到這兩個目錄中。當程序執行時需要某動態庫, 並且該動態庫還未載入到內存中,則系統會自動到這兩個默認搜索路徑中去查找相應的動態庫文件,然後載入該文件到內存中,這樣程序就可以使用該動態庫中的函 數,以及該動態庫的其它資源了。在Linux 中,動態庫的搜索路徑除了默認的搜索路徑外,還可以通過以下三種方法來指定。
1.在配置文件/etc/ld.so.conf中指定動態庫搜索路徑。
可以通過編輯配置文件/etc/ld.so.conf來指定動態庫的搜索路徑,該文件中每行為一個動態庫搜索路徑。每次編輯完該文件後,都必須運行命令ldconfig使修改後的配置生效。
舉一個例子:
所有源文件:
源文件1: lib_test.c
#include
void prt()
{
printf(「You found me!!!/n」);
}
源文件2: main.c
void prt();
int main()
{
prt();
return 0;
}

Ⅶ GCC編譯器是安裝在Linux哪個文件夾下

輸入which gcc命令就知道了,GCC編譯器安裝好後Linux系統上會有一個gcc命令,通過查看gcc命令的可執行文件所在的路徑,等於就是查看GCC編譯器的安裝目錄。而查看某個命令的可執行文件在哪裡的命令就是which命令,所以用which gcc就可以知道GCC編譯器的安裝目錄了。

Ⅷ Linux下gcc如何編譯自己目錄下的C程序

$cd ~
$cd C_code
$gcc xxxx.c -o xxxxxxxx

其中,~就是 /home/a564034199
xxxx就是你的源文件的名字
xxxxxxxx就是要編譯的文件

Ⅸ Gcc編譯目錄

源程序文件所在目錄就可以執行gcc完成編譯,沒有嚴格要求,如果主程序編譯需要包含的其他文件(包括其他的自己寫的頭文件等),最好跟主程序位於就近的目錄下,然後編寫makefile時指定一下。

閱讀全文

與gcc指定編譯目錄相關的資料

熱點內容
安卓華為手機怎麼恢復桌面圖標 瀏覽:956
我的世界電腦版伺服器地址在哪找 瀏覽:533
違抗了命令 瀏覽:256
安卓如何實現拖拽放置 瀏覽:91
凈資產收益率選股指標源碼 瀏覽:599
血壓力感測器計算公式單片機 瀏覽:466
全網介面vip影視解析源碼 瀏覽:916
如何破解伺服器遠程密碼錯誤 瀏覽:377
平安深圳app如何實名認證 瀏覽:500
linux網路監控軟體 瀏覽:889
內網伺服器如何上傳文件 瀏覽:140
程序員在你心中是什麼 瀏覽:1
蘋果手機怎麼找回app賬號 瀏覽:466
房屋中介網站源碼 瀏覽:29
命運格數演算法 瀏覽:852
ets3編程 瀏覽:730
怎麼製作音樂相冊的文件夾 瀏覽:566
寧夏重加密硅灰用法 瀏覽:231
70個4相乘的簡便演算法 瀏覽:292
安卓手機沒有機身存儲了怎麼辦 瀏覽:314