나는 계층 구조라는 단어를 사용했는데, 그것이 올바른지 확실하지 않습니다! 설명하겠습니다.gcc는 포함 파일의 계층을 고려하지 않습니다.
내가 함께 아이 있습니다
#include "A.h"
#include "B.h"
그리고 X.cpp :
마지막으로 나는이 상태 Xh을 가지고typedef vector<int> int_vector;
int_vector my_function(int x, int y);
:
#include <iostream>
#include <vector>
using namespace std;
내가 함께 BH가
#include "X.h"
// and the rest
그러나 GCC로 컴파일하면 B.h에서 정의되지 않은 벡터가 표시됩니다. 이것은 문제를 설명하기위한 예입니다. 리눅스에서 컴파일하려고 변환하려고하는 프로젝트는 Visual Studio에서 Windows에서 완벽하게 컴파일됩니다.
파일을 변경할 수는 있지만 300+ 파일 프로젝트이므로 어떤 도움이나 제안이 매우 효율적입니까?
오류는 어리 석다. 일부 #if #else #endif 부분에서 코드 블럭이 네임 스페이스의 괄호를 닫음으로써 모든 것을 처리 할 수있게되었습니다! 일반적으로 컴파일하는 것이 좋습니다. 전에 그 접근법을 사용했습니다. 그리고 OpenGL (적어도 하나의 버전) – widgg