powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Error: undefined function (Unix)
6 сообщений из 6, страница 1 из 1
Error: undefined function (Unix)
    #34275911
vitaliy14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OС Unix (МСВС)

Предистория такова: Хочу использовать у себя в программе функцию из библиотеки libole2
Библиотеку установил в make файле прописал нужные инклуды (#include <ms-ole.h>) в текст основной программы добавил:

Определенные в ms-ole.h типы данных компилятору видны, а вот на саму функцию ругается

Код: plaintext
1.
2.
3.
4.
5.
6.
[root@localhost viewer]# make
g++  -o viewer Compressor.o main.o viewer.o moc_viewer.o   -L/usr/lib/qt- 3 . 3 . 3 /lib -L/usr/X11R6/lib -L/usr/lib/libgnomeole2.la -L/usr/lib/ -lqt-mt -lXext -lX11 -lgnomeole2 -lm -lpthread
viewer.o(.text+0x21): In function `Test(char *)':
: undefined reference to `ms_ole_open_vfs(_MsOle **, char const *, int, _MsOleSysWrappers *)'
viewer.o(.text+0xaf6): In function `Viewer::Storages(void)':
: undefined reference to `ms_ole_open_vfs(_MsOle **, char const *, int, _MsOleSysWrappers *)'
collect2: ld returned  [b]1  exit status[/b]make: *** [viewer] Ошибка  1     

В ms-ole.h функция определена:

Код: plaintext
1.
2.
3.
extern MsOleErr		ms_ole_open_vfs		(MsOle **fs,
						 const char *path,
						 gboolean try_mmap,
						 MsOleSysWrappers *wrappers);
Причем компилятор саму функцию видит (я для эксперимента менял произвольно количество параметров ф-ии компилятор на это ругался, те он ее по идее видит), а почему то ругается?
...
Рейтинг: 0 / 0
Error: undefined function (Unix)
    #34276669
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вообще-то константный указатель на строку и константная строка две большие разницы.
Вы вызываете функцию со вторым параметром char const * вместо const char*
...
Рейтинг: 0 / 0
Error: undefined function (Unix)
    #34293611
vitaliy14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedну вообще-то константный указатель на строку и константная строка две большие разницы. Вы вызываете функцию со вторым параметром char const * вместо const char*

Если бы это была только моя не внимательность! :(

пишу

Код: plaintext
1.
2.
3.
4.
5.
6.
MsOle* ole;
const char* path="/Data/Content.td"

if(ms_ole_open_vfs(&ole,path,TRUE,NULL)){
..........
.......
}

И опять тоже самое сообщение об ошибке, что в первом посте.

Даже и не знаю почему компилятор так интерпретирует константный указатель.... Что делать?
...
Рейтинг: 0 / 0
Error: undefined function (Unix)
    #34293738
такое впечатление, что нужно декларировать extern "C" MsOleErr..
...
Рейтинг: 0 / 0
Error: undefined function (Unix)
    #34294215
vitaliy14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Голенков Владимиртакое впечатление, что нужно декларировать extern "C" MsOleErr..
Где декларировать при вызове в основной программе ? в первом посте показано объявление функции в файле скомпилированной библиотеки и там выше есть объявление extern "C"
я завтра чуть подробнее из нее код покажу!

библиотека из которой я использую ms_ole_open_vfs() написана на С (!)

А программу естественно на С++ я пишу с использованием qt!
...
Рейтинг: 0 / 0
Error: undefined function (Unix)
    #34294286
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ежели она даже на С писана обычно пишут в h файле
#ifdef __cplusplus
extern "C"
{
# endif
ежели там такого нет, то флаг в руки и патчить, а ежели есть - то причина в другом
надо искать
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Error: undefined function (Unix)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]