我用它編譯了我的c程式gcc -c -o test.exe test.c
並且編譯沒有錯誤,然後當我運行它時給出Access is denied.
這是我的程式碼
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}
答案1
-c
在沒有@Scott 的情況下嘗試一下
答案2
有多種二進位/物件/可執行程式碼檔案。我不確定這些名字有多標準,但是CS 11:編譯 C 程式(在加州理工學院)指的是「目標檔案」和「二進位執行檔」。一個簡單(也許過於簡單)的解釋是,目標檔案包含透過編譯單一原始檔產生的指令,而二進位可執行檔代表完整的程式。 (一旦超出了「Hello world」的程式設計水平,通常需要使用多個原始程式碼檔案來建立單一程式。)根據定義,物件檔案或多或少是:不完整的程序,因此不可執行。
當您使用 進行編譯時-c
,您正在建立一個目標文件,其中包含您的main
函數,僅包含您的函數。它包含稱呼to printf
,但它不包含printf
函數本身,也不包含尋找/載入它的方法。您必須保留該 -c
選項,以便取得完整程式的二進位執行檔。