我尝试在Ubuntu 21.04上安装gtk 1.2来运行旧的 c 程序。
成功安装 glib 1.2 后(专家的帮助)
我已经使用安装了 gtk 1.2Knud 提供的修改文件
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.
答案1
是的,您需要安装相关的-dev
软件包(针对 Gtk 和 Glib 及其依赖项)。
如果您打算使用这些库的旧版本来构建要运行的所有程序,您可能会发现安装amd64
版本比安装版本更容易i386
;这将避免-common
在两种架构上处理包的麻烦。