Форум программистов, компьютерный форум CyberForum.ru

из Си в C++ - C++

Восстановить пароль Регистрация
 
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
09.02.2013, 22:06     из Си в C++ #1
Вобщем пишу расширение для php, начинал писать на чистом Си и всё было отлично, но в один прекрастный день решил что Си мне мало и изменить код под C++, поменял просто имя файла с main.c на main.cpp и проэкт перестал компилится.
Ошибки
Код
undefined reference to `_imp__gc_globals_id'
undefined reference to `_imp__executor_globals_id'
Первая указывает на строку где вызывается макрос GC_G
C
1
2
3
4
BEGIN_EXTERN_C()
ZEND_API extern int gc_globals_id;
END_EXTERN_C()
#define GC_G(v) TSRMG(gc_globals_id, zend_gc_globals *, v)
Вторая похожая.
Макросы экстерна
C
1
2
3
4
5
6
7
#ifdef __cplusplus
#define BEGIN_EXTERN_C() extern "C" {
#define END_EXTERN_C() }
#else
#define BEGIN_EXTERN_C()
#define END_EXTERN_C()
#endif
Сижу уже вторые сутки не могу понять почему так, обратное изменение имени на main.c никчему не привело. И вот сегодня я подметил что ругается то на _imp__gc_globals_id (ищет имя как у перегруженой функции без extern C), тоесть в либе лежит название из Си gc_globals_id, а пытается найти _imp__gc_globals_id, хотя вроде и extern C указан. Помогите хоть советом каким нибудь, я уже не знаю что делать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru