Я писал несколько модулей расширения Python с помощью Cython. Написанные мной расширения хорошо работают. Затем я хотел использовать типизированные представления памяти при доступе к моим массивам numpy, поскольку они, похоже, имеют несколько преимуществ http://docs.cython.org/src/userguide/memoryviews.html
Однако, как только я использую memoryview в своем коде Cython, я получаю сообщение об ошибке при создании расширения. Например, если я добавлю эту тестовую строку:
cdef double [:, :: 1] X = np.zeros ((100, 100))
к существующему рабочему расширению Cython. Я получу следующие ошибки:
C:\MinGW\bin\gcc.exe -shared -s build\temp.win32-2.7\Release\image_box.o build\temp.win32-2.7\Release\image_box.def -Lc:\python27\libs -Lc:\python27\PCbuild -lp
ython27 -lmsvcr90 -o x:\ARframework\python\image_ops\image_box.pyd
build\temp.win32-2.7\Release\image_box.o:image_box.c:(.text+0xe23): undefined reference to `___sync_fetch_and_add_4'
build\temp.win32-2.7\Release\image_box.o:image_box.c:(.text+0x3318): undefined reference to `___sync_fetch_and_add_4'
build\temp.win32-2.7\Release\image_box.o:image_box.c:(.text+0x4c81): undefined reference to `___sync_fetch_and_sub_4'
build\temp.win32-2.7\Release\image_box.o:image_box.c:(.text+0x4d37): undefined reference to `___sync_fetch_and_sub_4'
build\temp.win32-2.7\Release\image_box.o:image_box.c:(.text+0x10767): undefined reference to `___sync_fetch_and_sub_4'
build\temp.win32-2.7\Release\image_box.o:image_box.c:(.text+0x10793): undefined reference to `___sync_fetch_and_sub_4'
collect2.exe: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
Я попытался добавить -march = i486 в строку gcc, как предлагается в этом сообщении: неопределенная ссылка на sync_fetch_and_add_4, но это не решило проблему. В этом отношении я также безуспешно пробовал -march = i586 и -march = pentium.
Есть идеи, что здесь происходит?
Моя платформа - Windows 7, версия mingw - 4.70, версия Cython - 0.17.1
Спасибо
build\temp.win32-2.7\Release\image_box.o build\temp.win32-2.7\Release\image_box.def
. - person moskito-x   schedule 08.10.2012C:\MinGW\bin\gcc.exe -shared -s build\temp.win32-2.7\Release\image_box.o -Lc:\python27\libs -Lc:\python27\PCbuild -lp
- person moskito-x   schedule 08.10.2012