我嘗試使用make實用 編譯在我的Linux C程序此發生了什麼事,如果我嘗試創建.o文件將bash中無法執行該文件
#make size_of.o
cc -c -o size_of.o size_of.c
正確編譯過程中運行,但當我執行的可執行文件我得到這個錯誤
#./size_of.o
bash: ./size_of.o: cannot execute binary file
然後再次運行我沒有做後綴的.o
#make size_of
cc size_of.o -o size_of
編譯和執行過程按我的預期運行。
這個程序是否有問題,或者你能告訴我什麼是錯的? 我如何解決這個問題,並在C中的可執行文件之間有任何不同?
此程序:
#include <stdio.h>
int main (void){
printf("char %d bytes\n",sizeof(char));
printf("short %d bytes\n",sizeof(short));
printf("int %d bytes\n",sizeof(int));
printf("long %d bytes\n",sizeof(long));
printf("float %d bytes\n",sizeof(float));
printf("double %d bytes\n",sizeof(double));
printf("long double %d bytes\n",sizeof(long double));
return 0;
}
,這是輸出:
char 1 bytes
short 2 bytes
int 4 bytes
long 4 bytes
float 4 bytes
double 8 bytes
long double 12 bytes
ok那麼如何才能將目標文件轉換爲可執行文件? – harianja 2014-09-11 04:58:12
@harianja,你已經在你的問題中用'cc size_of.o -o size_of'命令完成了這項工作,但我會更新答案以使其更清晰。但是,對於一個簡單的單源文件項目,您不必擔心,只需使用我提供的'gcc -o size_of size_of.c'。 – paxdiablo 2014-09-11 05:09:44
好的paxdiablo 感謝您的幫助 無論如何,我可以有你的電子郵件或Facebook或任何與你連接? – harianja 2014-09-11 05:44:47