Существуют некоторые ключи компилятора, которые вы передаете в gcc или в clang, чтобы включить компиляцию приложений Objective C или Objective C ++:
gcc -ObjC MySourceFile.m
gcc -ObjC++ MySourceFile.mm
clang -ObjC MySourceFile.m
clang -ObjC++ MySourceFile.mm
Вы указываете, какая минимальная версия MacOSX может запускать ваше приложениесо следующей опцией:
gcc -ObjC++ -mmacosx-version-min=10.6
Укажите 10.6, если вы хотите, чтобы ваше приложение было совместимо со Snow Leopard.Вам также нужно передать параметр sysroot в gcc или clang, чтобы сообщить им, с какой версией SDK компилироваться:
gcc -ObjC++ -mmacosx-version-min=10.6 --sysroot=/Developer/SDKs/MacOSX10.7.sdk
Игрушка задает архитектуру для сборки с параметром arch
gcc -ObjC++ -mmacosx-version-min=10.6 --sysroot=/Developer/SDKs/MacOSX10.7.sdk -arch x86_64
Если вы вызываете компоновщик ld отдельно, вам нужно передать опцию sysrootlib в ld.Для создания динамически связанной библиотеки вы передаете опцию dylib ld.Это передается ld, если вы передаете dynamiclib в gcc или clang.
gcc -dynamiclib -ObjC++ -mmacosx-version-min=10.6 --sysroot=/Developer/SDKs/MacOSX10.7.sdk -arch x86_64
Чтобы связать с Cocoa Frameworks, вы передаете опцию framework в качестве опции компоновщика для gcc и имени фреймворка:
gcc -dynamiclib -ObjC++ -mmacosx-version-min=10.6 --sysroot=/Developer/SDKs/MacOSX10.7.sdk -arch x86_64 -Wl,-framework,Cocoa
Если вы используете стандартную библиотеку C ++, вам нужно будет указать это как параметр компоновщика с помощью
-Wl,stdc++
При развертывании в MacOSX 10.7 и компиляции с помощью clang вы можете использовать стандартную библиотеку libc ++ C ++.Вы передаете опцию компилятору и компоновщику:
-stdlib=libc++ -Wl,c++
Таким образом, чтобы создать библиотеку из вашего источника, которая связана с платформой Cocoa, вы должны сделать следующее, используя gcc
gcc -dynamiclib -ObjC++ -mmacosx-version-min=10.6 --sysroot=/Developer/SDKs/MacOSX10.7.sdk -arch x86_64 -o MyLibrary.dylib -Wl,-framework,Cocoa MySourceFile.mm
Надеюсь, это поможет.