2016-11-08 1 views
0

약간의 배경 정보를 제공해 드리겠습니다. 저는 현재 미래의 학생들이 사용할 수 있도록 교차 플랫폼 라이브러리를 제작하고있는 학교 프로젝트에 참여하고 있습니다. 우리가 목표로 삼고있는 플랫폼마다 가장 많이 사용되는 IDE/컴파일러를 사용하도록 요구되었습니다. 즉, Windows 용 Visual C++ 컴파일러, Windows 용 Code :: Blocks (Ubuntu 용) 및 Mac 용 Clang 용 XCode와 함께 Visual Studio 2015를 사용하고 있음을 의미합니다.x86/x64 기반의 빌드 출력 변경 및 디버그/릴리스 Code :: Blocks/Xcode

우리는 현재 우리 도서관을위한 감미로운 시험을 개발하고 있지만 벽의 무언가를 만났습니다. 테스트 스위트에서는 모든 구성 (x86 디버그, x86 릴리스, x64 디버그, x64 릴리스)에서 라이브러리를 찾을 위치를 알아야합니다.

Visual Studio에서는 이러한 모든 다른 빌드의 출력 디렉터리를 선택할 수 있으므로이 작업을 쉽게 수행 할 수 있습니다.

Code :: Blocks는 출력 디렉토리에 대한 릴리스 및 디버그 빌드 옵션 만 제공합니다.

XCode는 다른 문제입니다. 출력을 넣을 위치에 대해 하나의 옵션 만 제공합니다. debug/release 또는 x86/x64인지 상관 없습니다. 단지 폴더의 이름을 말하면 거기에 모든 것을 넣을 것입니다.

Code :: Blocks 및 XCode에서 이러한 옵션을 확장하는 방법이 있습니까? 필자는이 라이브러리를 옮기기 위해 포스트 빌드 스크립트를 살펴 보았지만 라이브러리가 구성을 작성하는지 스크립트에서 알려주는 방법을 알 수는 없습니다. 라이브러리가 같은 이름을 유지해야한다는 지시를 받았기 때문에 빌드 구성마다 이름을 바꿀 수있는 옵션이 아닙니다.

답변

0

나는 XCode를 도울 수 없지만, 코드 블럭에서는 원하는만큼 많은 빌드 구성을 추가 할 수 있다는 것을 알고있다. 빌드 타겟이라고 부르지 만 gcc 나 Visual Studio make 파일의 타겟과 정확하게 같지는 않습니다.

추가 대상을 추가하려면 메뉴에서 "Project-> Properties ..."를 선택하고 "Build targets"탭을 선택하십시오. 그런 다음 32 비트 또는 64 비트 빌드의 프로젝트에 2 개의 새 대상을 추가 할 수 있습니다. 빌드 구성을 반영하도록 기존 대상의 이름을 바꿀 수도 있습니다.

빌드 대상 탭의 맨 아래에는 "빌드 대상 파일"이라는 확인란이 있습니다. 최소한 내가 사용하는 코드 블록 버전에서는 새 대상을 추가 할 때 모든 확인란이 비어 있습니다. 그렇다면 빌드 구성에 필요한 파일을 확인해야합니다.

마지막 단계는 새 빌드 구성에 대한 컴파일러 옵션, 링커 옵션, 포함 폴더 및 lib 폴더를 설정하는 것입니다. 빌드 옵션 버튼을 클릭하고 추가 컴파일러와 해당 빌드 구성에 적합한 설정 및 폴더를 추가합니다.

여기에주의 할 사항이 하나 있습니다. Codeblocks를 사용하면 프로젝트 및 대상 레벨에서 컴파일러 및 링커 옵션을 설정할 수 있습니다. 기본적으로 프로젝트 수준에서 설정 한 모든 설정이 모든 대상에 적용됩니다.

예를 들어 간단한 프로그램의 경우 프로젝트 수준에서 -Wall 옵션을 설정하고 디버그 구성에 -g를 설정하고 릴리스 구성에 -O2를 설정할 수 있습니다. 결과적으로 디버그 타겟을 빌드하려고 할 때 컴파일러에 사용되는 옵션은 "-Wall -g"이고 릴리스 타겟의 경우 "-Wall -O2"입니다. 링커 옵션 및 폴더에도 이와 비슷한 내용이 적용됩니다.

프로젝트에서 프로젝트 수준에서 32 비트 또는 64 비트 대상에만 적용되는 기존 옵션이있는 경우 해당 설정을 프로젝트 수준에서 개별 대상으로 이동해야합니다.

+0

이것은 실제로 두 플랫폼 (내 생각)에 대한 내 질문에 대답합니다. 나는 XCode가 빌드 타겟과 비슷한 것을 가지고 있다고 생각한다. 고마워. 나는 이것을 결코 생각하지 않았을 것이다. 나는 그것이 존재한다는 것을 알았지 만, Code :: Blocks를 사용하여 모든 것을 잊어 버렸기 때문에 오랜 시간이 걸렸다. – JParks