URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5316
[ Назад ]

Исходное сообщение
"Как увязать C++ и C в одном проекте"

Отправлено Savva , 05-Апр-06 17:13 
Есть у меня програмка на C. И вот потребовалось использовать некоторые функции из  сторонней библиотеки. Библиотека та написана на С++. Так вот в требуется сделать
#include "header.h"

в котором объявлен класс... , когда начинаю компилять свою прогу на С, gcc натыкается на клас и выдает кучу ошибок (оно и понятно)...

так вот что то мне подсказывает что должен быть способ обойти эту проблему...
Только вот переписать свою програмку с С на С++ не предлагайте :)

P.S. Попытался еще вот как сделать:
Програмка моя состоит из нескольких файлов. Я сначала компиляю объектные файлы
gcc -c file1.С
gcc -c file2.c
gcc -c file3.c

потом собираю все вместе gсс -o proga file1.o file2.o file3.o

тока вот потом появляется ругань : proga.o(.text+0x1fe): undefined reference to `err_msg(char const *,...)'


хотя пока было file1.c а не file1.C (ну на С был написан а не переделан на С++), то все собиралось как надо.


Содержание

Сообщения в этом обсуждении
"Как увязать C++ и C в одном проекте"
Отправлено darin , 05-Апр-06 21:02 
>Есть у меня програмка на C. И вот потребовалось использовать некоторые функции
>из  сторонней библиотеки. Библиотека та написана на С++. Так вот
>в требуется сделать
>#include "header.h"
>
>в котором объявлен класс... , когда начинаю компилять свою прогу на С,
>gcc натыкается на клас и выдает кучу ошибок (оно и понятно)...
>
>
>так вот что то мне подсказывает что должен быть способ обойти эту
>проблему...
>Только вот переписать свою програмку с С на С++ не предлагайте :)
>
>
>
>
>P.S. Попытался еще вот как сделать:
>Програмка моя состоит из нескольких файлов. Я сначала компиляю объектные файлы
>gcc -c file1.С
>gcc -c file2.c
>gcc -c file3.c
>
>потом собираю все вместе gсс -o proga file1.o file2.o file3.o
>
>тока вот потом появляется ругань : proga.o(.text+0x1fe): undefined reference to `err_msg(char const
>*,...)'
>
>
>хотя пока было file1.c а не file1.C (ну на С был написан
>а не переделан на С++), то все собиралось как надо.

Попробуй создать makefile и используй cxx.



"Как увязать C++ и C в одном проекте"
Отправлено попкорм , 06-Апр-06 01:25 
>Есть у меня програмка на C. И вот потребовалось использовать некоторые функции
>из  сторонней библиотеки. Библиотека та написана на С++. Так вот
>в требуется сделать
>#include "header.h"
>
>в котором объявлен класс... , когда начинаю компилять свою прогу на С,
>gcc натыкается на клас и выдает кучу ошибок (оно и понятно)...
>
>
>так вот что то мне подсказывает что должен быть способ обойти эту
>проблему...
>Только вот переписать свою програмку с С на С++ не предлагайте :)
>
>
>
>
>P.S. Попытался еще вот как сделать:
>Програмка моя состоит из нескольких файлов. Я сначала компиляю объектные файлы
>gcc -c file1.С
>gcc -c file2.c
>gcc -c file3.c
>
>потом собираю все вместе gсс -o proga file1.o file2.o file3.o
>
>тока вот потом появляется ругань : proga.o(.text+0x1fe): undefined reference to `err_msg(char const
>*,...)'
>
>
>хотя пока было file1.c а не file1.C (ну на С был написан
>а не переделан на С++), то все собиралось как надо.


учите албанский!
там есть конструкция extern "C"


"Как увязать C++ и C в одном проекте"
Отправлено vvvua , 06-Апр-06 14:31 
>>Есть у меня програмка на C. И вот потребовалось использовать некоторые функции
>>из  сторонней библиотеки. Библиотека та написана на С++. Так вот
>>в требуется сделать
>>#include "header.h"

и нужно сделать из либы объектник с помощью g++

>>
>>в котором объявлен класс... , когда начинаю компилять свою прогу на С,
>>gcc натыкается на клас и выдает кучу ошибок (оно и понятно)...
>>
>>
>>так вот что то мне подсказывает что должен быть способ обойти эту
>>проблему...
>>Только вот переписать свою програмку с С на С++ не предлагайте :)
>>
>>
>>
>>
>>P.S. Попытался еще вот как сделать:
>>Програмка моя состоит из нескольких файлов. Я сначала компиляю объектные файлы
>>gcc -c file1.С
>>gcc -c file2.c
>>gcc -c file3.c
>>
>>потом собираю все вместе gсс -o proga file1.o file2.o file3.o

gсс -o proga file1.o file2.o file3.o LIBA.o

>>
>>тока вот потом появляется ругань : proga.o(.text+0x1fe): undefined reference to `err_msg(char const
>>*,...)'
>>
>>
>>хотя пока было file1.c а не file1.C (ну на С был написан
>>а не переделан на С++), то все собиралось как надо.

ругается линкер, а не компилер
>
>
>учите албанский!
>там есть конструкция extern "C"