2012-03-19 4 views
0

gcc 컴파일러를 사용하고 있습니다. 다소이gcc를 사용한 재귀 컴파일

test$~: tree . 
. 
|-- folder 
| |-- hello.cpp 
| `-- hello.h 
`-- main.cpp 

1 directory, 3 files 
test$~: 

파일처럼 main.cppmain() 기능을 포함하고 모든 기능은 지금까지 모두 folder

라는 이름의 디렉토리에 main.cpp 거짓말에 의해 호출처럼

내 프로젝트 소스 트리가 보이는 내 작은 프로젝트 하위 디렉토리 아래에 소스 코드를 넣지 않아도되었습니다. 나는 짧은에, 무엇을 찾고

재귀 서브 디렉토리와 하위 디렉토리에서 컴파일 등등 ...이 명령은 코드 프로젝트의 홈 디렉토리에서 호출해야합니다 일부 GCC 명령입니다.

+1

AFAIK, GCC에는 이러한 메커니즘이 없습니다. 일반적으로 이러한 종류의 작업은 빌드 시스템 (예 : Make)에서 처리합니다. –

+0

흥미로운 아이디어. 가능할 수도 있다는 것을 암시하기 위해 설명서에서 무엇을 찾았습니까? AFAIK, 명령 줄에 모든 파일을 나열하는 것이 불가능합니다. –

답변

0

나는 현재이없는 나는 정말 C++ 라이브러리를 테스트 할 수 있지만,이 작동합니다 : 난 그냥 -o 옵션을 생략하면 어떻게 일을 기억하지 않습니다

find . -type f -iname *.cpp -execdir g++ {} \; 

을 gcc 용. 필요하다면 적어도 해결책에 조금 더 가까워 질 것입니다. 대신 메이크 파일을 사용하는 것이 좋습니다

+1

'g ++ -o a.out $ (find. -type f -ame * .cpp -print)'? 어쨌든 그것을하는 것은 나쁜 생각입니다. –

+0

@VladLazarenko 그러면 모든 컴파일 데이터가 a.out에 저장됩니다. –

+2

그러면 모든 파일을 찾아서 gcc의 명령 행에 넣어야합니다. 그러면 컴파일되고'a.out' 바이너리로 링크됩니다. 우리가 bash + linux를 사용한다면. –

관련 문제