0.
$ ls -l /usr/lib/libvga*
-rw-r--r-- 1 root root 660554 2011-06-17 02:34 /usr/lib/libvga.a
-rw-r--r-- 1 root root 90798 2011-06-17 02:34 /usr/lib/libvgagl.a
lrwxrwxrwx 1 root root 17 2011-06-17 02:34 /usr/lib/libvgagl.so -> libvgagl.so.1.4.3
lrwxrwxrwx 1 root root 17 2011-06-17 02:34 /usr/lib/libvgagl.so.1 -> libvgagl.so.1.4.3
-rw-r--r-- 1 root root 69104 2011-06-17 02:34 /usr/lib/libvgagl.so.1.4.3
lrwxrwxrwx 1 root root 15 2011-06-17 02:34 /usr/lib/libvga.so -> libvga.so.1.4.3
lrwxrwxrwx 1 root root 15 2011-06-17 02:34 /usr/lib/libvga.so.1 -> libvga.so.1.4.3
-rw-r--r-- 1 root root 394160 2011-06-17 02:34 /usr/lib/libvga.so.1.4.3
1.
$ gcc -L/usr/lib -osample sample.c
/tmp/ccKgak5a.o: In function `main':
sample.c:(.text+0xa): undefined reference to `vga_init'
sample.c:(.text+0x16): undefined reference to `vga_setmode'
sample.c:(.text+0x22): undefined reference to `vga_setcolor'
sample.c:(.text+0x36): undefined reference to `vga_drawpixel'
sample.c:(.text+0x4e): undefined reference to `vga_setmode'
collect2: ld returned 1 exit status
2.
$ export LD_LIBRARY_PATH="/usr/lib"
$ echo $LD_LIBRARY_PATH
/usr/lib
$ gcc -osample sample.c
/tmp/cc6yioMz.o: In function `main':
sample.c:(.text+0xa): undefined reference to `vga_init'
sample.c:(.text+0x16): undefined reference to `vga_setmode'
sample.c:(.text+0x22): undefined reference to `vga_setcolor'
sample.c:(.text+0x36): undefined reference to `vga_drawpixel'
sample.c:(.text+0x4e): undefined reference to `vga_setmode'
collect2: ld returned 1 exit status
Внезапно оказалось, что ни с одной библиотекой ничего связываться не хочет. О_о
Точно также падают и boost, и GL. Система практически девственно чистая. Нет ничего, кроме компилятора и вышеописанных библиотек. Особо напрягает первый пункт в этом посте. Я же сказал чётко, где искать библиотеки. Или я торможу?
Пользователь решил продолжить мысль 20 Апреля 2012, 19:12:53:
Проблема оказалась в моих кривых руках и незнании.
Решение кроется в линковщике, а точнее, в порядке параметров.
http://webpages.charter.net/ppluzhnikov/linker.htmlСледующая команда отлично работает, всё компилирует.
$ gcc -osample sample.c -lvga
Ну или так:
$ gcc -c sample.c
$ gcc -osample sample.o -lvga
Хотя это достаточно интересный факт. Я обнаружил эту фигню толко сейчас, когда решил посмотреть свои же старые демки, написанные пару лет назад. Собственно, есть проект с Makefile'ом. Он работает на старой системе (к которой пару лет и не прикасался). Собирается на ура и сейчас. Перепроверил несколько раз. На новой машине вылезает вот такая фигня.
Вопрос, думаю, решён.