두 버전의 내 앱이 포함 된 Mac OS X 용 유니버설 바이너리를 만들 수 있습니까? 하나는 SSE4.2로 컴파일되고 다른 하나는 SSE3으로 컴파일 된 것입니까?다른 SSE 버전의 유니버셜 바이너리
이 경우 SSE4.2를 지원하는 CPU에 대해 SSE4.2로 컴파일 된 버전이 자동으로로드됩니다.
아니요, 그렇다면 SSE4.2를 지원하지 않지만이를 지원하는 CPU에서 SSE4.2를 사용하는 오래된 CPU에서 내 앱을 실행하라는 제안을 받고 싶습니다.
Mac AppStore를 대상으로합니다. Xcode 4.5에서 Clang을 사용합니다.
당신이해야 할 일은 : 1) 명령어 세트를 감지하십시오. 2) 원하는 버전으로 분기하십시오. – Mysticial
[내 대답은 여기에 명령 집합을 감지하는 방법을 보여줍니다.] (http://stackoverflow.com/a/7495023/922184)'__cpuid()'내장 함수는 MSVC에만 해당됩니다. GCC에서는 인라인 어셈블리를 사용하여 액세스 할 수 있습니다. 나는 당신이 무엇을 사용하고 있는지 잘 모르겠지만 그것을 접근 할 수있는 방법이 있어야합니다. – Mysticial
이전 CPU에서 실행되지 않는 일부 줄이 타사 오픈 소스 프로젝트에서 나왔으므로 소스 코드 파일을 변경하지 않는 것이 좋습니다. –