2013-02-22 2 views
0

소스를 Objective-C++로 컴파일하기 위해 구성을 xcode에서 사용하고 있지만 라이브러리를 추가했으며 Objective-C로 컴파일하고 싶습니다. 어떻게해야합니까?특정 파일을 컴파일하기위한 플래그

내 설정 :

//:configuration = Debug 
CLANG_CXX_LIBRARY = libstdc++ 

//:configuration = Release 
CLANG_CXX_LIBRARY = libstdc++ 

//:completeSettings = some 
GCC_C_LANGUAGE_STANDARD 
CLANG_CXX_LIBRARY 
GCC_CW_ASM_SYNTAX 

//:configuration = Debug 
CLANG_CXX_LIBRARY = libstdc++ 
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp 

//:configuration = Release 
CLANG_CXX_LIBRARY = libstdc++ 
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp 

//:completeSettings = some 
GCC_C_LANGUAGE_STANDARD 
CLANG_CXX_LIBRARY 
GCC_CW_ASM_SYNTAX 
GCC_INPUT_FILETYPE 

답변

2

난 당신이 여기에 한 일을하지 않는 것이 좋습니다. 전역 기본값을 변경하는 대신 파일 이름을 올바르게 지정하는 것이 좋습니다 (.m은 ObjC이고 .mm은 ObjC++, '.cpp'는 C++). 어떤 이유로 이것이 불가능할 경우, 개별 파일을 선택하여 대체 할 수 있습니다. 파일 목록에서 파일을 선택하고 속성을 열고 ID 및 유형 필드에서 각각에 대해 원하는 파일 유형을 선택하십시오. 이 방법으로 개별 파일을 다시 ObjC로 재설정 할 수 있어야하지만 기본값을 그대로두고 절대적으로 필요한 부분을 대체하는 것이 좋습니다.

대부분의 코드를 ObjC++로 컴파일하는 것은 좋지 않습니다. 잘 지원되는 언어는 아닙니다. 그것은 ObjC와 순수한 C++ 사이의 접착제로서 의도됩니다. ObjC++는 많은 오버 헤드를 가지며 컴파일 타임 및 런타임시 성능 저하를 초래합니다 (ObjC 또는 C++보다 런타임시 더 많은 메모리를 사용함). 디버거 및 다른 도구에서 가장 적은 기능을 지원합니다. 확실히 기본 언어가되어서는 안됩니다. 자세한 내용은 Wrapping C++ Final Edition을 참조하십시오.

관련 문제