Ага, я нашел, почему оно не компилируется! Оказывается при опции, например -
lGLU, линкер ищет во всех стандартных директориях нечто, с префиксом
lib, именем
GLU и расширением
.a или
.so, т.е.
libGLU.a и
libGLU.so. Что бы он искал не только в стандартных директориях, можно дать еще одну опцией
-L; так для нашего тестового примера решение выглядит так:
constantine@constantine-N61Ja:~/Projects/wine-git/wine32$ gcc -m32 test2.c -c -o libtest2.so
constantine@constantine-N61Ja:~/Projects/wine-git/wine32$ gcc -m32 -L/home/constantine/Projects/wine-git/wine32/ -ltest2 test.c -o test
Самое забавное, что только после того, как до меня это дошло, я глянул снова в мануал, и обнаружил, вот же оно, это описание:
The linker searches a standard list of directories for the library, which is actually a file named liblibrary.a.
Я десятки раз пересматривал этот несчастный абзац и
не видел, что написано у меня буквально под носом
