2013-04-09 2 views
0

Visual Studio 6 및 2010에서 컴파일해야하는 C++ 프로젝트의 프로젝트 파일을 생성하는 데 cmake을 사용하고 있습니다. 두 프로젝트에서 모두 파일이 생성되었으므로 파일을 빌드 할 수 있습니다. 문제없이 프로젝트.cmake 생성 된 프로젝트 파일에서 절대 경로를 얻는 방법

그러나 2010 vxproj 파일에는 cpp 파일에 대한 상대 경로가 포함되어 있으며 Jenkins를 사용하여 파일을 빌드 할 때 Jenkins가 소스 파일을 찾을 때 사용할 수없는 상대 경로가 포함되어 있습니다.

.. \ .. \ 소스 \의 moduleA의 \의 file1.cpp (74) : 경고 C4800 : 'BOOL': bool로하는 값을 강제로 'true'또는 'false'(

나는이 참조

이 있었어야하지만

중 하나 source/moduleA/file.cpp 또는 젠킨스에 대한 D:\jenkins\jobs\workspace\source\moduleA\file.cpp 성능 경고) 파일을 찾을 수 있습니다.

물론 나는 로그 파일을 구문 분석하고 ..\...\을 제거 할 수 있지만 좀 더 우아한 해결책을 찾고 싶습니다.

+0

'source \ moduleA \ file1.cpp'을 빌드에 추가하는 CMake 코드를 보여줄 수 있습니까? – arrowd

+0

실제로 파일을 찾은 것처럼 보입니다. 컴파일 할 때 경고 메시지가 표시됩니다. 파일을 찾을 수 없다고 말하는 실제 오류를 게시 할 수 있습니까? 또한 VS2010에 오류가있는 경우 : vxproj 대신 솔루션 파일을 직접 사용하지 않는 이유는 무엇입니까? – Sagar

+0

컴파일 오류가 없습니다. 소스 폴더에는 moduleA가 포함 된 CMakeLists.txt가 하나 있습니다. '파일 (GLOB GUIDLL_SRC "* .H" "* cpp를" "* .RC") add_library (GuiDllD SHARED $ {GUIDLL_SRC})': moduleA에서 나는 이것을 사용 – uncletall

답변

0

결국이 문제를 해결할 수있는 컴파일러 옵션을 발견했습니다. Visual Studio 2010에 /FC 플래그를 추가 할 수 있습니다. VC6에서 작동하는지 확실하지 않습니다. 추가하려면 다음을 사용하십시오 :

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FC") 
관련 문제