реклама на сайте
подробности

 
 
> Совместное использование *.сpp файлов и *.c, Не компилируются совместно файлы Си и Си++
kolobochishe
сообщение Jun 9 2011, 07:22
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Вот такая ошибка при вызове функции написанной в *.cpp файле из *.с файла

Linking
Error[Li005]: no definition for "plot_spectrum" [referenced from C:\ÐÀÁÎÒÀ\ÐÀÇÐÀÁÎÒÊÈ\ÏÐÎÅÊÒÛ\ÄÐÀÊÎÍ\Ðåãèñòðàòîðû\Ïðîøèâêà\
LPC3250 GUI_RTOS\arm\PowerPac\BoardSupport\NXP\LPC3250\Output\LPC3250\Debug_SDRAM\Obj\DRAGON_BS1_GUI.o]
Error while running Linker

Функция объявлена в соответствующем *.h файле. Он подключен везде, где требуется.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobochishe
сообщение Jun 9 2011, 08:05
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Цитата(MrYuran @ Jun 9 2011, 12:43) *
В хедерах си-шных модулей надо вставить скобки
Код
#ifdef __cplusplus
BEGIN_EXTERN_C
#endif
...
#ifdef __cplusplus
END_EXTERN_C
#endif

, где
Код
#define BEGIN_EXTERN_C           extern "C" {
#define END_EXTERN_C             }


Компилировать и линковать в режиме "плюсов"


Компилится. Только не в хэдерах си-шных модулей, а в хэдере си++ модуля. У меня только так заработало.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 9 2011, 09:47
Сообщение #3


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(kolobochishe @ Jun 9 2011, 12:05) *
Компилится. Только не в хэдерах си-шных модулей, а в хэдере си++ модуля. У меня только так заработало.

Можно ставить с любых заголовочных файлах, которые включаются в проект для с и cpp.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
inventor
сообщение Jun 16 2011, 18:24
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Цитата(mdmitry @ Jun 9 2011, 13:47) *
Можно ставить с любых заголовочных файлах, которые включаются в проект для с и cpp.

в принципе если извратица то можно из сишной программы вызывать с++ модули.
у вас проблема в том, что С++ делает такую хрень как name mangling.
то есть при линковке имена ваших функций становятся такими что их сишный линкер
не может понять.
решение которое вам подсказали вверху заставляет линкер не искажать имя функции.
но если вы попробуете предложить несколько функций с одинаковым названием-перегруженные,
то опять получите ошибку.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- kolobochishe   Совместное использование *.сpp файлов и *.c   Jun 9 2011, 07:22
- - MrYuran   В хедерах си-шных модулей надо вставить скобки Код...   Jun 9 2011, 07:43
|- - sergeeff   Проще прямо написать Код#ifdef __cplusplus extern ...   Jun 9 2011, 07:46
|- - sergeeff   Цитата(inventor @ Jun 16 2011, 22:24) в п...   Jun 17 2011, 10:24
|- - zltigo   QUOTE (sergeeff @ Jun 17 2011, 13:24) про...   Jun 17 2011, 12:54
|- - sergeeff   Цитата(zltigo @ Jun 17 2011, 16:54) С и С...   Jun 17 2011, 13:20
|- - zltigo   QUOTE (sergeeff @ Jun 17 2011, 16:20) Хот...   Jun 17 2011, 13:33
|- - Сергей Борщ   QUOTE (sergeeff @ Jun 17 2011, 16:20) Хот...   Jun 17 2011, 13:40
||- - zltigo   QUOTE (Сергей Борщ @ Jun 17 2011, 16:40) ...   Jun 17 2011, 13:59
||- - dxp   Цитата(Сергей Борщ @ Jun 17 2011, 20:40) ...   Jun 17 2011, 14:09
|- - Danis   Цитата(sergeeff @ Jun 17 2011, 16:20) Хот...   Jun 17 2011, 13:57
- - sonycman   А наоборот может быть - ошибка при вызове из си++ ...   Jun 18 2011, 09:38
|- - sergeeff   Цитата(sonycman @ Jun 18 2011, 12:38) А н...   Jun 18 2011, 13:51
|- - sonycman   Цитата(sergeeff @ Jun 18 2011, 17:51) Вы ...   Jun 19 2011, 17:36
|- - AHTOXA   Цитата(sonycman @ Jun 19 2011, 23:36) Но ...   Jun 19 2011, 18:04
|- - sonycman   Цитата(AHTOXA @ Jun 19 2011, 22:04) Именн...   Jun 19 2011, 19:14
|- - sergeeff   Цитата(sonycman @ Jun 19 2011, 22:14) Пон...   Jun 19 2011, 20:30
|- - sonycman   Цитата(sergeeff @ Jun 20 2011, 00:30) А э...   Jun 19 2011, 21:17
|- - dxp   Цитата(sonycman @ Jun 20 2011, 04:17) Я о...   Jun 20 2011, 02:59
|- - XVR   Цитата(sonycman @ Jun 20 2011, 01:17) Не ...   Jun 20 2011, 08:42
|- - sonycman   Цитата(dxp @ Jun 20 2011, 06:59) Если ком...   Jun 20 2011, 09:13
|- - XVR   Цитата(sonycman @ Jun 20 2011, 13:13) Так...   Jun 20 2011, 09:21
||- - sonycman   Цитата(XVR @ Jun 20 2011, 13:21) Разумеет...   Jun 20 2011, 09:34
|- - dxp   Цитата(sonycman @ Jun 20 2011, 16:13) Инт...   Jun 20 2011, 12:04
|- - zltigo   QUOTE (dxp @ Jun 20 2011, 14:04) Мне попа...   Jun 20 2011, 12:15
|- - inventor   Кстати, никогда не делайте программы для DSP и кон...   Jun 22 2011, 10:52
|- - dxp   Цитата(inventor @ Jun 22 2011, 17:52) Кст...   Jun 22 2011, 12:13
||- - inventor   Цитата(dxp @ Jun 22 2011, 16:13) Вам сюд...   Jun 22 2011, 13:59
||- - dxp   Цитата(inventor @ Jun 22 2011, 20:59) Для...   Jun 22 2011, 14:48
|||- - zltigo   QUOTE (dxp @ Jun 22 2011, 17:48) Заинтриг...   Jun 22 2011, 17:52
||- - XVR   Цитата(inventor @ Jun 22 2011, 17:59) Для...   Jun 22 2011, 19:19
||- - inventor   Цитата(XVR @ Jun 22 2011, 23:19) Угу, вид...   Jun 23 2011, 11:21
||- - MrYuran   Цитата(inventor @ Jun 23 2011, 15:21) код...   Jun 23 2011, 11:30
||- - dxp   Цитата(inventor @ Jun 23 2011, 18:21) код...   Jun 23 2011, 12:35
|||- - inventor   Цитата(dxp @ Jun 23 2011, 16:35) Это тако...   Jun 23 2011, 16:41
||- - XVR   Цитата(inventor @ Jun 23 2011, 15:21) код...   Jun 23 2011, 17:54
||- - ar__systems   Цитата(inventor @ Jun 23 2011, 07:21) код...   Jul 4 2011, 01:14
|- - AHTOXA   Цитата(inventor @ Jun 22 2011, 16:52) Все...   Jun 22 2011, 14:48
- - sergeeff   Уж сколько понаписано про преждевременную оптимиза...   Jun 24 2011, 10:45
|- - zltigo   QUOTE (sergeeff @ Jun 24 2011, 13:45) Уж ...   Jun 24 2011, 13:15
|- - inventor   Цитата(zltigo @ Jun 24 2011, 17:15) глупо...   Jun 24 2011, 15:50
|- - sergeeff   Цитата(zltigo @ Jun 24 2011, 16:15) глупо...   Jun 25 2011, 09:41
|- - zltigo   QUOTE (sergeeff @ Jun 25 2011, 11:41) А ч...   Jun 25 2011, 09:47
|- - sergeeff   Цитата(zltigo @ Jun 25 2011, 12:47) После...   Jun 25 2011, 17:38
|- - zltigo   QUOTE (sergeeff @ Jun 25 2011, 19:38) Ров...   Jun 25 2011, 18:53
|- - sergeeff   Цитата(zltigo @ Jun 25 2011, 21:53) Вы оп...   Jun 25 2011, 22:44
||- - Dog Pawlowa   Цитата(sergeeff @ Jun 26 2011, 01:44) Про...   Jun 26 2011, 05:03
||- - inventor   Цитата(sergeeff)Сделали. И вдруг (или не вдруг) на...   Jun 26 2011, 06:35
||- - zltigo   QUOTE (sergeeff @ Jun 26 2011, 00:44) Име...   Jun 26 2011, 08:26
||- - sergeeff   Цитата(zltigo @ Jun 26 2011, 11:26) Забыл...   Jun 26 2011, 09:37
||- - zltigo   QUOTE (sergeeff @ Jun 26 2011, 12:37) Одн...   Jun 26 2011, 10:18
||- - sergeeff   Цитата(zltigo @ Jun 26 2011, 13:18) Катег...   Jun 26 2011, 10:39
|- - MrYuran   Цитата(zltigo @ Jun 25 2011, 22:53) Все у...   Jun 27 2011, 06:43
- - dxp   Цитата(inventor @ Jun 24 2011, 22:50) Не ...   Jun 27 2011, 06:57
- - MrYuran   Цитата(dxp @ Jun 27 2011, 10:57) Даже есл...   Jun 27 2011, 07:02
|- - dxp   Цитата(MrYuran @ Jun 27 2011, 14:02) Согл...   Jun 27 2011, 10:44
- - zltigo   QUOTE (dxp @ Jun 27 2011, 08:57) Насчёт А...   Jun 27 2011, 08:20


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01519 секунд с 7
ELECTRONIX ©2004-2016