не компилит ( С++ )

Модератор: Модераторы разделов

luncher
Сообщения: 84
ОС: mandriva 2008 spring

не компилит ( С++ )

Сообщение luncher »

Здравствуйте!
не компилит следующий код

Код:

#include <stdio.h> #include <vga.h> int main() { vga_init(); vga_setmode(5); vga_setcolor(4); vga_drawpixel(10,10); sleep(5); vga_setmode(0); exit(0); }


говорит

Код:

/tmp/ccvICMP5.o: In function `main': prog.cpp:(.text+0x12): undefined reference to `vga_init' prog.cpp:(.text+0x1e): undefined reference to `vga_setmode' prog.cpp:(.text+0x2a): undefined reference to `vga_setcolor' prog.cpp:(.text+0x3e): undefined reference to `vga_drawpixel' prog.cpp:(.text+0x4a): undefined reference to `vga_setmode' collect2: выполнение ld завершилось с кодом возврата 1


хотелось бы разобраться с областью видимости раз и навсегда. Обьясните пожайлуста что не так, и как обозначить область видимости?

Заранее спасибо!
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: не компилит ( С++ )

Сообщение NickLion »

Ошибка undefined reference to `vga_init' это ошибка не компилятора, а линкера. Вы забыли подключить библиотеку.
Спасибо сказали:
luncher
Сообщения: 84
ОС: mandriva 2008 spring

Re: не компилит ( С++ )

Сообщение luncher »

нет с библиотеками все в порядке, посмотрел на оффициальном сайте библотеки этой ( SVGAlib ) там все абсолютно также, если я не прав, то привидите, пожайлуста, код который будет компилироваться
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: не компилит ( С++ )

Сообщение NickLion »

Да дело не в коде! :) В нем все верно. Нужно опцию добавить - включить библиотку для линковки.
-l<libname>
(дефис, маленькая английская л, имя либы)
Например:
-lSVGAlib
Зависит от названия собственно либы. Естественно либа должна быть доступна для линковки. Опция -L<path> - добавляет путь для поиска либ.
Спасибо сказали:
luncher
Сообщения: 84
ОС: mandriva 2008 spring

Re: не компилит ( С++ )

Сообщение luncher »

Спасибо большое! так компилится!
последний вопросик при попытке запуска программы такая ошибка
svgalib: Cannot open /dev/svga
тут то проблема явно не в коде, а в чем?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: не компилит ( С++ )

Сообщение NickLion »

Посмотрите права на svga, возможно придется запускать прогу от рута. (Возможно мешают иксы.) Тут не в курсе, я с этой библиотекой не работал. :(
Спасибо сказали: