A. gcc編譯後怎麼運行
假如生成的可執行文件名稱為prog.exe,位於D:\cpp文件夾下,那麼打開命令行,運行下面兩條命令
cd D:\cpp
prog.exe
注意,如果用gcc編譯的時候未指定可執行文件名稱,則默認為a.exe
linux系統
假如生成的可執行文件名稱為prog,位於home下的CPP文件夾,那麼打開終端,運行下面兩條命令
cd ~/CPP
./prog
注意,如果用gcc編譯的時候未指定可執行文件名稱,則默認為a.out
B. linux下用gcc編譯的c程序,為什們每次運行必須在文件名前家./怎樣可以讓運行的時候不用加
這是因為當前目錄不再PATH中。
所以執行該程序必須加上路徑(絕對路徑活相對路徑)。
「.」在Linux(以及許多其他系統中)指的是當前目錄(就是你執行pwd所看到的目錄)。因此「./foo」指的是運行當前目錄下的foo程序。
如果需要不加「./」,有如下解決方法:
1)把這個程序復制到PATH中有的目錄中去。
(查看PATH中有哪些目錄用「echo $PATH」)
2)把路徑「.」加入到PATH中去:
執行
export PATH=$PATH:.
如果希望不用每次啟動新BASH的時候都設置這個環境變數,請在~/.bash_profile(在不同的系統中可能並不一樣,在Ubuntu中默認是~/.profile)中找到PATH變數並添加「.」路徑。
注意:這樣如果系統PATH中有與你的程序的同名文件,那麼執行的將不是你的程序。當然,把上面那個命令改成
export PATH=.:$PATH可以解決這個問題,但這是很危險的(加入有人在某個目錄下把一個木馬起名ls,那麼你在這個目錄下運行ls就會......)。
總的來說,建議習慣使用「./」來執行當前目錄的程序。
C. AVR GCC運行編譯時錯誤,提示 gcc plug-in: Error: Object file not found on expected location
將自己定義的頭文件,就是在每個 .C 文件中包含的 .h 文件中 定義的全局變數全部不用初始化,比如 在 .h 文件中 有個 unsigned char buf = 0; 這樣編譯就會出現上述的問題,改成 unsigned char buf; 就OK 了。不用初始化,一初始化就會問題。呵呵
D. Xcode 在用gcc編譯的時候出現警告
代碼的運行編譯是從上往下的,出現這個警告的原因是你寫的某個函數裡面調用了另一個函數,而這個另一個函數是第一次出現,系統辨認不出,當然你是寫在了下面。
所以解決這個問題有兩個方法:1在代碼最上端聲明所有函數。 2把該函數內調用的函數寫到該函數的上面。
E. 寫操作系統時,gcc 編譯後 變數存儲問題 保護模式段 設置問題
既然「ds和ss兩個必須是同一個數據段。否則訪問出錯。」那麼在運行這樣的程序之前有應該設置好啊,還有,推薦C配合匯編編程,有助於保護現場。
F. windows下的gcc編譯的c源文件為什麼無法運行
windows 下的編譯 c 語言的編譯器一般不是 gcc,一般用的是 Visual Studio 裡面的 cl(這玩意其實是 C++ 編譯器)。
gcc 也有一些人移植 Linux 程序的時候用到,它是打包在 MinGW 裡面的。你可以下載 MinGW-W64 安裝。
G. c語言程序gcc運行時提示段錯誤。
段錯誤很有可能是數組越界所造成的。
老實說程序不在這人家很難分析的。
H. GCC編譯出來的程序脫離調試器運行時總是提示缺少組件,該怎麼設置編譯選項來包含DLL
在 GCC Linker 時添加 -static-libgcc -static-libstdc++ 這樣的選項,讓它把引用到的 gcc 和 stdc++ 庫函數嵌入到生成的 exe 文件中去,這樣 exe 尺寸變大了,但不需要 dll 來運行。我在 windows 上是這么做的。
I. 使用GCC,編譯如下C語言代碼,運行時崩潰,請高手指教!
這是在將兩個字元串的字母進行排序,保存到一個字元數組中吧。
char s1 = "acmhm"
s1是一個字元;怎麼可以將一個字元串地址賦值給它呢?
應該是這樣吧 char *s1 = "acmhm"。