簡體   English   中英

編譯C文件的問題

[英]Problems in compiling C files

我有這三個文件,我試圖將它們鏈接在一起。 這是一個教學示例,我嘗試了不同的組合來編譯這三個文件,但我不知道出了什么問題。 即使這個微不足道的代碼是錯誤的。

我想了解的是如何在不同的文件中分離一個函數的聲明,以便將它從主文件的頭文件中包含進來。 或者至少這是我想出來的。 我的老師以一個 .h 文件和兩個 .c 文件為例:它們是......

foo.c

int foo(int x){
return x==42 ? 1 : 0;
}

foo.h

extern int foo(int);

使用-foo.c

#include <stdio.h>
#include "foo.h"
int main(){
printf("foo(42) == %d \n", foo(42));
getchar();
return 0;
}

我希望有人能指導我完成這個,我不需要不同的解決方案,請幫助我處理這 3 個唯一的文件,因為老師的目的是這個。

您可以使用以下命令編譯它:

gcc -o use-foo use-foo.c foo.c

然后你就可以使用以下命令運行它:

./use-foo

只要確保你的所有文件都在同一個目錄中,你從那個目錄調用 gcc 並且 gcc 安裝在你的系統上。

關於包含文件和交叉編譯的更多建議:所有頭文件(如 foo.h)都應該包含保護,就像那樣

#ifndef __FOO__
#define __FOO__

int foo (int);

#endif

這將阻止編譯器在您的代碼中多次添加您的頭文件。

另一個建議是在你的 foo.c 代碼中也包含 foo.h。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM