在 64 位 ubuntu 机器上编译 blt2.4

在 64 位 ubuntu 机器上编译 blt2.4

我是编程/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

如果你仍然想继续手动编译+安装,那么我没有什么建议给你。我更喜欢阻力最小的路径。

相关内容