OSX Как скомпилировать фреймворк, используя GCC/G++, сидя в текущем рабочем каталоге или подкаталоге C/C++
Надеюсь, это нормально. Но так как я понял это некоторое время назад из-за большой борьбы и еще не видел этого в переполнении стека, я решил, что я и отправлю вопрос и ответ.
Этот вопрос / решение предназначено для пользователей OSX, чтобы скомпилировать платформу с использованием GCC или G++ без необходимости иметь платформу по следующему пути в своей системе.
/System/Library/Frameworks/
1 ответ
Этот код скомпилирует фреймворк из указанного каталога в вопросе. (Отвечено ранее) Как скомпилировать программу на C, которая использует Framework без использования Xcode
gcc ... -framework frameworkName a.c b.c ... -o out
Этот код скомпилирует фреймворк из пользовательского каталога. (Не отвечал раньше, насколько я видел). Пример следующего каталога / файла.
/alt/path/to/framework/frameworkName.framework
,
FLAGS+="-F /alt/path/to/framework/ -framework frameworkName rpath /alt/path/to/framework/"
gcc ... $FLAGS a.c b.c ... -o out
Это будет пример подкаталога рабочего каталога. Я знаю. / Обычно это соглашение, но я не могу вспомнить, сработало ли это для меня или нет здесь.
FLAGS+="-F $(PWD)/alt/path/to/framework/ -framework frameworkName rpath $(PWD)/alt/path/to/framework/"
gcc ... $FLAGS a.c b.c ... -o out
Это комбинация / System / Library / Frameworks / path и пути $(PWD)/alt/path/to/framework/ в одной и той же компиляции.
FLAGS+="-F $(PWD)/alt/path/to/framework/ -framework frameworkName2 rpath $(PWD)/alt/path/to/framework/"
gcc ... -framework frameworkName1 $FLAGS a.c b.c ... -o out
Если кто-то найдет этот ответ / вопрос по переполнению стека, я немедленно удалю свой "вопрос". Целью этого было сделать переносимость фреймворков для людей, кроме меня. Как? Потому что, если инфраструктура находится в рабочем каталоге, ее можно легко перемещать с помощью самой папки / файлов. Очевидно, что это не обычное дело, которое люди пытаются, но, может быть, это сделает кого-то днем.