2009-11-02 8 views
1

저는 자바 배경에서 왔습니다. 현재 제가 일하는 가게는 MS VC++ 이외의 다른 것을 사용하여 레거시 프로젝트를 구축하는 것을 거부합니다. VS2005를 사용하여 빌드하고 컴파일 단추를 클릭하는 것 외에는 빌드 환경을 설정하기위한 표준을 사용하지 않는 것으로 보입니다.일반적으로 MS Visual C++ 환경은 어떻게 설정됩니까?

자바 예를 들어 한 무슨에 가까운 것도이 있다면 궁금

:

    • SRC를 포함하는 의미가 ANT 또는 메이븐
    • 디렉토리 구조와 같은 빌드 도구 - 장소 모든 내 소스 파일 .c/.cpp/.h
    • lib - 프로젝트 (.dll, .lib)에서 사용될 수있는 라이브러리를위한 장소
    • d ist - 프로젝트의 출력 실행/배포를위한 장소
    • 리소스 - 프로젝트에 포함될 수있는 이미지/소리/텍스트 파일을위한 장소.
    • 의 build.xml - 빌드 파일의 일부 종류는

(내 생각 ./configure를 또는 MAKEFILE 같은 것) 아니면 내가 환경을 구축 ++은 C에서 너무 많은 요구는 무엇입니까? 내 가게에있는 사람들이 나올만큼 혼란 스럽습니까? 인터넷에서 너무 많은 C++ 프로젝트의 성공을 고려할 때 정말 힘든 시간을 보냈습니다.

답변

2

좋은 의도가있는 것 같습니다. MSVC가 아닌 세계에서 나는 당신의 요점을 볼 수 있습니다.

나는 우리 신발에 확실히 명령 줄/자동화 된 빌드/빌드 서버를 만들 것입니다.

MSBuild를 사용할 수 있습니다. hudson에는 이에 대한 플러그인이 있습니다. 대개 적절한 MSBuild/.sln 파일을 호출하는 스크립트 등을 포함하는 프로젝트의 루트 근처에 "Build"디렉토리가 있습니다.

Visual Studio의 "makefile"은 .sln 및 .vcproj 파일입니다. 명령 행에서 msbuild를 사용하여 호출 할 수 있습니다. 실행할 수있는 IDE 내에서 메이크 파일을 내보낼 수도 있습니다 (여전히 옵션이라고 생각합니다). 나는 그걸 시도해 보는 것 외에 다른 길을가는 것이 좋습니다. 그 이유는 그것이 익숙한 것이기 때문입니다.

vcproj 파일과 sln 파일은 모두 사람이 읽을 수있는 파일이므로 두 파일을 통해 유용한 정보를 얻을 수 있습니다.

나는 또한 distributon 디렉토리를 갖는 것이 좋다 - 빌드 이후에/etc를 설치하는 데 동의합니다. postbuild 단계 나 다른 스크립트/etc에 필요한 바이너리를 모두 복사하십시오.

최종 결과를 알려주십시오.

내가 한 가지 충고가 : 업그레이드 VC/데브 스튜디오 2008 또는 2010을 최대한 빨리

+1

@tim Cool 그걸 몰랐습니다 .vcproj 및 .sln 파일은 사람이 읽을 수있는 파일이었습니다! :) 아마도 MS에 대한 오래된 (아마도 근거없는) 편향이있을 것입니다. 나는 그들이 최근 몇 년 동안 나아지기위한 조치를 취했다는 것을 알고 있습니다. – leeand00

0

표준화 된 물건 :

  • 빌드 도구 : *.sln/*.vcproj (Visual Basic의 경우에 대한 *.vbproj 등)
  • 디렉토리 : 비주얼 스튜디오는
  • 빌드 파일을 (여분의 제품을 필요로하지 않는다) 구조 : 출력 바이너리의 "Debug"및 "Release"디렉토리.

나머지는 "별로 중요하지 않습니다"와 같이 "혼돈"하지 않습니다. "Chaotic"은 그것이 항상 바뀌 었음을 암시하지만, 실제로는 프로젝트를 위해 하나를 골라서 붙잡는다. 회사는 프로젝트 전반에 걸쳐 내부 표준을 가지고있을 수 있습니다. 기업 간 표준화를 괴롭히는 데는 문제가되지 않습니다. C++은 어쨌든 복잡한 언어입니다. C++을 읽기에 충분한 IQ를 가진 사람이라면 합리적인 편차를 처리 할 수 ​​있습니다. \lib\\Library\의 차이가 그들을 막아주지는 않습니다.

+0

되는 것은 아닙니다 리눅스 C++ 디렉토리 구조 이것보다 더 조직 태드? – leeand00

+0

또한 프로젝트가 컴파일되는 순서를 어떻게 알 수 있습니까? – leeand00

+0

모든 구조를 체계적으로 보이게하는 규칙 일뿐입니다. g ++에서, 당신이 노력한다면 당신이 원하는 곳 어디에서도 물건을 넣을 수 있습니다. Visual Studio와 동일합니다. Visual Studio에서 컴파일 순서를 묻는다면 어떤 차이가 있습니까? 어쨌든 구조를 지정할 수 있습니다. 설명서를 읽으십시오. – jfawcett

1

MSVC는 사용자에게 디렉터리 구조를 적용하지 않습니다. 예를 들어, Debug 및 Release 디렉토리에 대해 위에서 언급했듯이 일부 기본값이 있지만 이것도 프로젝트별로 기반을 재정의 할 수 있습니다. 자신에게 맞는 디렉토리 구조를 사용하십시오.

Visual Studio는 IDE를 사용하지 않으려는 경우 명령 줄 지원을 제공합니다. 자세한 내용은 This MSDN Article을 참조하십시오.

1

Visual Studio (및 둘 이상의 프로젝트가있는 솔루션의 경우)를 사용하여 적절한 빌드 환경을 설정할 수 있으며 프로젝트 구성에서 사용할 출력 파일과 중간 파일 파일은 기본적으로 정의 된 폴더와 다른 폴더로 이동합니다.

대용량 VS 솔루션에는 중간 서브 디렉토리로는 obj/$(ProjectName)/$(ConfigurationName)이고 서브 디렉토리에는 bin/$(ConfigurationName) 출력 디렉토리가 있습니다.

이러한 모든 사항은 사용자가 수행해야하며 단일 추천/우수 사례가 발전하지 않은 것으로 보입니다.

관련 문제