Итак, я прочитал этот пост более внимательно по предложениям @ ead, и это оказалось большой помощью. Пишем следующее для тех, кто сталкивается с подобной проблемой.
После запуска cython ConnectFour.pyx --embed
моей целью было скомпилировать файл .c в исполняемый файл. Это означает, что (1) необходимо создать объектные файлы .o и (2) преобразовать объектный файл .o в исполняемый файл, который можно запустить следующим образом: ./MyExecutable
Шаг 1. Создание .o объектных файлов
Нам нужно выполнить следующее, но проблема, с которой я столкнулся, заключалась в том, чтобы узнать, как получить мои флаги.
gcc -c hello.c -o hello.o <our cflags>
Поскольку я установил Python через Homebrew, Python и его заголовочные файлы находятся в следующем каталоге для меня.
/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/
Чтобы сгенерировать для меня cflags - мне нужно было выполнить следующую команду. Обратите внимание на флаг --cflags. Команда запускает утилиту конфигурации для моей установки Python 3, которая установлена в странном каталоге (поскольку я установил Python через Homebrew).
/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/python3.7-config
--cflags
Ниже приведен фрагмент флагов, сгенерированных для меня.
-I/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m -I/usr/local.......etc etc.
Используя флаги, я запустил следующее для генерации моих объектных файлов.
gcc -c ConnectFour.c -o ConnectFour.o -I/usr/local/Cellar/python/3.7.0/Frameworks/Python.framework/Versions/3.7/include/python3.7m -I/...etc etc.
Шаг 2. Преобразование объектного файла в исполняемый файл
Чтобы сгенерировать исполняемый файл, нам нужно выполнить следующее.
gcc main.o hello.o -o prog <our ldflags>
Чтобы сгенерировать флаги ld, на этот раз мне нужно было выполнить следующую команду. Мы снова используем утилиту конфигурации, но на этот раз с --ldflags.
/usr/local/Cellar/python3/3.7.0/Frameworks/Python.framework/Versions/3.7/bin/python3.7-config --ldflags
Это сгенерировало для меня следующие флаги.
-L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m ...etc. etc.
Используя эти флаги, я запустил следующую команду для генерации моего исполняемого файла.
gcc ConnectFour.o -o ConnectFour -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m ...etc. etc.
Готово! Выскочил исполняемый файл, и я запустил его, как и любой другой исполняемый файл C.
Особая благодарность @ead за указание в правильном направлении.