使用 gcc 編譯 c 程式碼時存取被拒絕

使用 gcc 編譯 c 程式碼時存取被拒絕

我用它編譯了我的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選項,以便取得完整程式的二進位執行檔。

相關內容