Не могу статически слинковаться с FLTK, точнее с fltk_images.a.
Скажем, на примере компиляции программы sudoku из дистрибутива
fltk-1.1.7, делаю:
$ cd ~/tmp/testsudoku # Сюда скопировал файлы sudoku
$ ls
config.h sudoku-32.png sudoku.ico sudokurc.h
sudoku-128.png sudoku.cxx sudoku.rc sudoku.xbm
$ g++ -o sudoku -lfltk -lfltk_images sudoku.cxx
# Все нормально:
$ ldd ./sudoku | grep fltk
libfltk.so.1.1 => /usr/local/lib/libfltk.so.1.1 (0xb7e76000)
libfltk_images.so.1.1 => /usr/local/lib/libfltk_images.so.1.1 (0xb7e69000)
# Теперь берем статическую fltk
$ rm -f sudoku
$ g++ -o sudoku /usr/local/lib/libfltk.a -lfltk_images sudoku.cxx
# Тоже все нормально, динамический fltk все равно есть, т.к. нужен для fltk_images:
$ ldd ./sudoku | grep fltk
libfltk_images.so.1.1 => /usr/local/lib/libfltk_images.so.1.1 (0xb7f9c000)
libfltk.so.1.1 => /usr/local/lib/libfltk.so.1.1 (0xb7bfd000)
# Теперь fltk и fltk_images -- обе статические:
$ rm -f sudoku
$ g++ -o sudoku /usr/local/lib/libfltk.a /usr/local/lib/libfltk_images.a sudoku.cxx 2>&1 | tail
sudoku.cxx:(.text._ZN9Fl_Window10size_rangeEiiiiiii[Fl_Window::size_range(int, int, int, int, int, int, int)]+0x5e): undefined reference to `Fl_Window::size_range_()'
/tmp/ccSvHd9r.o:(.rodata._ZTV6Sudoku[vtable for Sudoku]+0x10): undefined reference to `Fl_Window::draw()'
/tmp/ccSvHd9r.o:(.rodata._ZTV6Sudoku[vtable for Sudoku]+0x14): undefined reference to `Fl_Window::handle(int)'
/tmp/ccSvHd9r.o:(.rodata._ZTV6Sudoku[vtable for Sudoku]+0x1c): undefined reference to `Fl_Window::flush()'
/tmp/ccSvHd9r.o:(.rodata._ZTV6Sudoku[vtable for Sudoku]+0x20): undefined reference to `Fl_Window::show()'
/tmp/ccSvHd9r.o:(.rodata._ZTV6Sudoku[vtable for Sudoku]+0x24): undefined reference to `Fl_Window::hide()'
/tmp/ccSvHd9r.o:(.rodata._ZTV10SudokuCell[vtable for SudokuCell]+0x18): undefined reference to `Fl_Widget::resize(int, int, int, int)'
/tmp/ccSvHd9r.o:(.rodata._ZTI6Sudoku[typeinfo for Sudoku]+0x8): undefined reference to `typeinfo for Fl_Window'
/tmp/ccSvHd9r.o:(.rodata._ZTI10SudokuCell[typeinfo for SudokuCell]+0x8): undefined reference to `typeinfo for Fl_Widget'
collect2: ld returned 1 exit status
Откуда берутся эти undefined references? Fl_Window, скажем,
определяется в fltk, я ее прилинковываю, так в чем же проблема?
Помогите разобраться.
Ответ на:
комментарий
от rymis
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Помогите собрать florb. (2020)
- Форум undefined symbol: cgroup_get_cgroup_name (2012)
- Форум libfilter_mutualinfo.so в Meshlab (2013)
- Форум QT и QTcpServer (2008)
- Форум Статически слинковать love2d (2019)
- Форум Статически слинковать динамическую библиотеку (2005)
- Форум Слинковать ldscript со статической библиотекой (2016)
- Форум слинковать статически busybox с uclibc (2011)
- Форум Статически слинковать программу с gstreamer (2010)
- Форум [cmake]Статически слинковать с Qt (2010)