Компиляция и компоновка расширения C для Python в Xcode для Mac
Я пытаюсь скомпилировать простое расширение C в Mac для использования с Python, и все хорошо работает в командной строке. Код и команда gcc, которые работают, представлены ниже. Сейчас я пытаюсь создать такое же расширение в Xcode 4.5 (Mac OS10.8) и пробовал несколько целевых настроек для dylib или статической библиотеки, но я всегда получаю файл, который не может быть загружен в Python, показывая ошибку:
./myModule.so: unknown file type, first eight bytes: 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A
Моя конечная цель - создать рабочую область в XCode с исходным кодом расширения C / C ++ и иметь скрипт Python, который вызывает его в Xcode. Итак, если мне нужно отладить расширение C / C ++, у меня есть возможности отладки XCode. Я знаю, что XCode не отлаживается в скрипте Python, но он может его запустить, правильно?
gcc -shared -arch i386 -arch x86_64 -L/usr/lib/python2.7 -framework python -I/usr/include/python2.7 -o myModule.so myModule.c -v
#include
/*
* Function to be called from Python
*/
static PyObject* py_myFunction(PyObject* self, PyObject* args)
{
char *s = "Hello from C!";
return Py_BuildValue("s", s);
}
/*
* Another function to be called from Python
*/
static PyObject* py_myOtherFunction(PyObject* self, PyObject* args)
{
double x, y;
PyArg_ParseTuple(args, "dd", &x, &y);
return Py_BuildValue("d", x*y);
}
/*
* Bind Python function names to our C functions
*/
static PyMethodDef myModule_methods[] = {
{"myFunction", py_myFunction, METH_VARARGS},
{"myOtherFunction", py_myOtherFunction, METH_VARARGS},
{NULL, NULL}
};
/*
* Python calls this to let us initialize our module
*/
void initmyModule()
{
(void) Py_InitModule("myModule", myModule_methods);
}