Ubuntu
如何在新系統上安裝 gtk 1.2?
我嘗試在 Ubuntu 21.04 上安裝 gtk 1.2 來執行舊的 c 程序。
成功安裝 glib 1.2 後(在專家的幫助下)
sudo apt install ./libgtk1.2-common_1.2.10-18_i386.deb [sudo] hasło użytkownika a: Czytanie list pakietów... Gotowe Budowanie drzewa zależności... Gotowe Odczyt informacji o stanie... Gotowe Uwaga, wybieranie "libgtk1.2-common:i386" zamiast "./libgtk1.2-common_1.2.10-18_i386.deb" libgtk1.2-common:i386 is already the newest version (1.2.10-18). 0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych. sudo apt install ./libgtk1.2_1.2.10-18_i386.deb Czytanie list pakietów... Gotowe Budowanie drzewa zależności... Gotowe Odczyt informacji o stanie... Gotowe Uwaga, wybieranie "libgtk1.2:i386" zamiast "./libgtk1.2_1.2.10-18_i386.deb" Następujące pakiety zostały zainstalowane automatycznie i nie są już więcej wymagane: libpthread-stubs0-dev:i386 libx11-dev:i386 libxau-dev:i386 libxcb1-dev:i386 libxdmcp-dev:i386 libxext-dev:i386 libxfixes-dev:i386 libxi-dev:i386 x11proto-input-dev Aby je usunąć należy użyć "sudo apt autoremove". Następujące pakiety zostaną USUNIĘTE: libgtk1.2-dev:i386 Następujące pakiety zostaną zaktualizowane: libgtk1.2:i386 1 aktualizowanych, 0 nowo instalowanych, 1 usuwanych i 0 nieaktualizowanych. Konieczne pobranie 0 B/837 kB archiwów. Po tej operacji zostanie zwolnione 3 822 kB miejsca na dysku. Kontynuować? [T/n] t Pobieranie:1 /home/a/Pobrane/gtk/knud/libgtk1.2_1.2.10-18_i386.deb libgtk1.2 i386 1.2.10-18 [837 kB] (Odczytywanie bazy danych ... 216199 plików i katalogów obecnie zainstalowanych. ) Usuwanie pakietu libgtk1.2-dev:i386 (1.2.10-17build1) ... (Odczytywanie bazy danych ... 215939 plików i katalogów obecnie zainstalowanych. ) Przygotowywanie do rozpakowania pakietu .../libgtk1.2_1.2.10-18_i386.deb ... Rozpakowywanie pakietu libgtk1.2:i386 (1.2.10-18) nad (1.2.10-17build1) ... Konfigurowanie pakietu libgtk1.2:i386 (1.2.10-18) ... Przetwarzanie wyzwalaczy pakietu man-db (2.9.4-2)... Przetwarzanie wyzwalaczy pakietu libc-bin (2.33-0ubuntu5)... N: Download is performed unsandboxed as root as file '/home/a/Pobrane/gtk/knud/libgtk1.2_1.2.10-18_i386.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Brak dostępu) a@zalman:~/Pobrane/gtk/knud$ sudo apt install ./libgtk1.2_1.2.10-18_i386.deb Czytanie list pakietów... Gotowe Budowanie drzewa zależności... Gotowe Odczyt informacji o stanie... Gotowe Uwaga, wybieranie "libgtk1.2:i386" zamiast "./libgtk1.2_1.2.10-18_i386.deb" libgtk1.2:i386 is already the newest version (1.2.10-18). Następujące pakiety zostały zainstalowane automatycznie i nie są już więcej wymagane: libpthread-stubs0-dev:i386 libx11-dev:i386 libxau-dev:i386 libxcb1-dev:i386 libxdmcp-dev:i386 libxext-dev:i386 libxfixes-dev:i386 libxi-dev:i386 x11proto-input-dev Aby je usunąć należy użyć "sudo apt autoremove". 0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.
查看 :
ldconfig -p libgtksourceview-4.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgtksourceview-4.so.0 libgtkmm-3.0.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgtkmm-3.0.so.1 libgtk-3.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgtk-3.so.0 libgtk-1.2.so.0 (libc6) => /lib/libgtk-1.2.so.0 libgtk-x11-2.0.so.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
所以現在我可以編譯程序了
make /usr/bin/gcc -std=gnu89 -Wall -g -I /usr/include/glib-1.2 -I /usr/include/gtk-1.2 -I /usr/lib/glib/include -o julia2 complex.o imagearea.o zero.o cpoly.o julia2.o `gtk-config --cflags` `gtk-config --libs` -lgthread /bin/sh: 1: gtk-config: not found /bin/sh: 1: gtk-config: not found / usr / bin / ld: leave incompatible /usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/libgthread.a when looking for -lgthread / usr / bin / ld: leave incompatible /lib/../lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /lib/../lib/libgthread.a when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/../lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/../lib/libgthread.a when looking for -lgthread / usr / bin / ld: leave incompatible /usr/lib/gcc/x86_64-linux-gnu/10/../../../libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/gcc/x86_64-linux-gnu/10/../../../libgthread.a when -lgthread is searched / usr / bin / ld: leave incompatible /lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /lib/libgthread.a when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/libgthread.a when -lgthread is searched / usr / bin / ld: cannot find -lgthread / usr / bin / ld: leave incompatible /usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /lib/../lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/../lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/gcc/x86_64-linux-gnu/10/../../../libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /lib/libgthread.so when -lgthread is searched / usr / bin / ld: leave incompatible /usr/lib/libgthread.so when -lgthread is searched collect2: error: ld returned 1 exit status make: *** [makefile:13: julia2] Błąd 1
手動檢查顯示沒有“/usr/include/gtk-1.2”目錄
我應該安裝開發包嗎?
============編輯======================
安裝開發包:
sudo apt install ./libgtk1.2-dev_1.2.10-18_i386.deb Czytanie list pakietów... Gotowe Budowanie drzewa zależności... Gotowe Odczyt informacji o stanie... Gotowe Uwaga, wybieranie "libgtk1.2-dev:i386" zamiast "./libgtk1.2-dev_1.2.10-18_i386.deb" libgtk1.2-dev:i386 is already the newest version (1.2.10-18). 0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.
是的,您需要安裝相關
-dev
軟體包(用於 Gtk 和 Glib 及其依賴項)。如果您打算使用這些庫的舊版本建構所有要執行的程序,您可能會發現安裝版本比安裝
amd64
版本更容易i386
;-common
這將避免在兩種架構上處理包的麻煩。