我是编程/Linux新手,正在尝试安装BLT2.4,这是稍后安装的另一个程序所需的。首先,我在64位Ubuntu机器上成功安装了tcl8.3 tk8.3及其开发版本。然后我尝试使用以下命令配置BLT2.4y:
./configure --with-tcl=/usr/lib/tcl8.3 --with-tk=/usr/lib/tk8.3
当我这样做时会收到几条这样的消息:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux gnu/4.7/../../../../lib/libtk8.3.so when searching for -ltk8.3
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../libtk8.3.a when searching for -ltk8.3
/usr/bin/ld: skipping incompatible /usr/lib/libtk8.3.so when searching for -ltk8.3
/usr/bin/ld: skipping incompatible /usr/lib/libtk8.3.a when searching for -ltk8.3
/usr/bin/ld: cannot find -ltk8.3
我收到了 ltcl8.3 的相同消息。经过数小时的搜索和尝试不同的修复方法(使用符号链接、安装多库等),我还是没有成功。
这可能与 makefile 有关,makefile 是在 configure 之后从 makefile.in 自动生成的。我尝试过以下建议“CFLAGS=-m32” makefile 更改但没用。这是我在 configure 之后的 makefile:
CC = gcc
CFLAGS = -O6
EXTRA_CFLAGS = -Wall -fPIC
DEFINES =
DEF_BLTINIT = -DBLT_LIBRARY=\"$(scriptdir)\"
SHLIB_LD_FLAGS = -rdynamic
SHLIB_LD_LIBS = -ltk8.3 -ltcl8.3 -lX11 -lm -lnsl
SHLIB_LD = cc -pipe -shared
LDFLAGS =
prefix = /usr
exec_prefix = /usr
libdir = $(exec_prefix)/lib
bindir = $(exec_prefix)/bin
srcdir = ./..
instdirs = $(exec_prefix) $(libdir)
scriptdir = /usr/lib/blt2.4
LIBS = -ltk8.3 -ltcl8.3 -lX11 -lm -lnsl
TCL_ONLY_LIBS = -ltcl8.3 -lm -lnsl
我应该对 makefile/makefile.in、链接等进行哪些更改(如果有的话)才能编译?只是想再次提一下,我对 linux/编程总体上还很陌生。非常感谢任何解决此问题的建议。
答案1
我建议从存储库安装软件包。它会自行安装,不会出现任何问题。如果您需要,blt
还有一个软件包。检查所需程序的存储库始终是一个好主意,以确保与其他 Ubuntu 程序兼容。blt-dev
如果你仍然想继续手动编译+安装,那么我没有什么建议给你。我更喜欢阻力最小的路径。