2013-03-13 3 views
-2

크로스 모듈 종속성을 사용하는 응용 프로그램을 컴파일하는 방법이 있습니까? 나는 표준 기능을 & 다른 모듈 기능GCC 모듈 종속성

gcc module.c -c 
gcc module2.c -c 
gcc module.o module2.o -o app 

를 사용하여 모듈을 컴파일 할 때 내가 얻을

implicit declaration of function printf 

나는 그것이 각 파일의 모든 헤더를 포함하고 #DEFINE &를 사용하여 처리 할 수있어 같은 오류 #ifndef하지만 아주 추합니다. (module2.h 생략 module.h에 &)

#include "macro.h" 
#include "module.h" 
#include "module2.h" 

#include <math.h> 
#include <stdio.h> 
#include <stdlib.h> 

int main(void) {} 

APP.C

macro.h

#define macro(var1, var2) var1 ? printf(var2) : moduleFunc(var2) 
#define macro2(var) some math func 

모듈 :이 같은 응용 프로그램 파일에있는 모든 파일을 포함하고 싶습니다 이 .c

void moduleFunc(char* var) {macro2(); module2Func();} 

module2.c

void module2Func(...) {macro(); printf(...); some math func} 
+1

컴파일러가 작업을 수행하는 데 필요한 것들을 추한 이유는 무엇입니까? 그것은 직원이있는 것과 같으며 직원에게이 도구에 대해 알지 못하지만 그것이 무엇인지를 잘 추측합니다! –

+0

각 파일에 갖는은 #endif 다음 #ifndef STDIO_H #DEFINE STDIO_H 사용법 #include 같은 일부 라인은 추한입니다. – Lukasik

+0

그리고 그게 못생긴가요? 파일에 몇 줄의 문자가 있습니까? 이것은 추악한 것으로 간주 될 수 있지만 - 그의 여자 친구는 그렇지 않다고 생각합니다. http://www.google.co.uk/imgres?imgurl=http://www.thearchnemesis.com/images/angler%2520fish.jpg&imgrefurl=http://www.thearchnemesis.com/Ugly%2520Fish.html&h= 266 w = 400 SZ = 55 tbnid = B3YhsMI2JPfBBM & TBNH = 90 tbnw = 135 크게 = 1 USG = __ wELGU655O -1- _EgIFikAC5fTmIM = DOCID = zE9IqtSDyVCYNM 및 SA = X 및 EI = yZBAUeCkGsO50QWe7oCwAg 및 VED = 0CDgQ9QEwAA & = 217 –

답변

0

macro.hstdio.h을 포함하십시오. 그런 식으로 어떤 모듈 이건 macro.h 헤더를 사용하려고합니다 printf 선언에서 stdio.h