我正在尝试在 Kubuntu 16.04 LTS 上编译并安装 XOOPIC: http://ptsg.egr.msu.edu/
我已经在 /home/downloads/xgrafix 中安装了 xgrafix,现在我要安装 xoopic。由于某种原因,所有依赖项都不在 xoopic 认为它们所在的位置,因此我必须附加大量“--with”选项来明确告诉 xoopic 文件和库的位置。
我在终端输入:
sudo TCL_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ \
TK_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ \
sh run_conf.sh \
--with-tclsh=/usr/bin/tclsh8.6 \
--with-X11_LIBDIR=/usr/lib/x86_64-linux-gnu \
--with-tclsh=/usr/bin/tclsh8.6 \
--with-tclconfig=/usr/lib/tcl8.6 \
--with-tkconfig=/usr/lib/tk8.6 \
--with-tclhdir=/usr/include/tcl8.6 \
--with-tkhdir=/usr/include/tcl8.6 \
--with-sfftw-incdir=/usr/include \
--with-dfftw-incdir=/usr/local/include \
--with-hdf5-libdir=/usr/lib/x86_64-linux-gnu \
--with-XGRAFIX-lib=/usr/local/lib \
--with-XGRAFIX-include=/usr/local/include/ \
--with-xpm=/usr/lib/x86_64-linux-gnu \
--with-hdf5-incdir=/usr/include/hdf5/serial \
--with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial
我得到:
configuring with options: --prefix=/home/nirbhav/usr/local --with-SCALAR=double --enable-fulloptimize --with-XGRAFIX-lib=/home/nirbhav/usr/local/lib --with-XGRAFIX-include=/home/nirbhav/usr/local/include --with-tclsh=/usr/bin/tclsh8.6 --with-X11_LIBDIR=/usr/lib/x86_64-linux-gnu --with-tclsh=/usr/bin/tclsh8.6 --with-tclconfig=/usr/lib/tcl8.6 --with-tkconfig=/usr/lib/tk8.6 --with-tclhdir=/usr/include/tcl8.6 --with-tkhdir=/usr/include/tcl8.6 --with-sfftw-incdir=/usr/include --with-dfftw-incdir=/usr/local/include --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu --with-XGRAFIX-lib=/usr/local/lib --with-XGRAFIX-include=/usr/local/include/ --with-xpm=/usr/lib/x86_64-linux-gnu --with-hdf5-incdir=/usr/include/hdf5/serial --with-hdf5-libdir=/usr/lib/x86_64-linux-gnu/hdf5/serial
configure: WARNING: unrecognized options: --with-SCALAR
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
using HDF5? ... yes
checking for hdf5.h... /usr/include/hdf5/serial/hdf5.h
checking for libhdf5.a... /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.a
checking for h5diff... no
configure: WARNING: hdf5.m4 has changed. Please be certain to include sz.m4.
Using C++ compiler g++
Using C compiler gcc
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for library containing strerror... none required
checking whether time.h and sys/time.h may both be included... yes
checking for BSD-compatible nm...
install-sh/usr/bin/nm -B
Setting the flags per system and C++ compiler: g++
checking for g++... /usr/bin/g++
Serial C++ compiler is `g++'
checking g++ version... g++
configure: WARNING: Caution: version is not known to work.
configure: WARNING: C++ compiler may generate code for this processor only.
checking for -fsquangle... no
checking how to build libraries... with ar cr
checking for gcc... /usr/bin/gcc
Serial C compiler is `gcc'
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking iostream usability... yes
checking iostream presence... yes
checking for iostream... yes
checking strstream usability... yes
checking strstream presence... yes
checking for strstream... yes
checking fstream usability... yes
checking fstream presence... yes
checking for fstream... yes
checking sstream usability... yes
checking sstream presence... yes
checking for sstream... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
Calling config/macros.m4
Calling config/cxx.m4
checking whether c++ compiler supports exception handling... yes
checking whether c++ compiler supports typename... yes
checking whether c++ compiler can explicitly instantiate templates... yes
checking whether c++ compiler supports RTTI... yes
checking whether c++ compiler supports namespaces... yes
checking whether c++ compiler has complex in the namespace std... yes
checking whether c++ compiler has streams in the namespace std... yes
checking whether c++ compiler can overload const type conversions... yes
checking whether c++ compiler knows mutable... yes
checking whether template friends need brackets... yes
checking whether nontype template operators are allowed... no
checking whether static variables can be declared generally... yes
config/cxx.m4 finished
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for ranlib... ranlib
checking what the library suffix is... .a
checking how to install libraries... with ${INSTALL} -m 644
configure: WARNING: x11.m4 is obsolete. Please use AC_PATH_X or AC_PATH_XTRA.
checking for X11/Xlib.h... /usr/include/X11/Xlib.h
checking for libX11.a... /usr/lib/x86_64-linux-gnu/libX11.a
Checking for XGRAFIX library...
/usr/local/lib/libXGC250.a
found: /usr/local/lib/libXGC250.a
Checking for xgrafix.h...
found: /usr/local/include//xgrafix.h
checking for xgscalar.h... /usr/local/include/xgscalar.h
checking for SCALAR in /usr/local/include/xgscalar.h... #define SCALAR double
checking for tclsh... /usr/bin/tclsh8.6
checking for tclConfig.sh... /usr/lib/tcl8.6/tclConfig.sh
checking for tkConfig.sh... /usr/lib/tk8.6/tkConfig.sh
checking for libtcl8.6.a... /usr/lib/x86_64-linux-gnu/
checking for libtk8.6.a... /usr/lib/x86_64-linux-gnu/
checking for up-to-date Tcl version in tcl.h... 8.6
Warning: The Tcl version in /usr/include/tcl8.6/tcl.h is not in the legal Tcl versions list!
tcl_version: NONE
TCL_MAJOR_VERSION: 8
TCL_MINOR_VERSION: 6
checking for up-to-date Tk version in tk.h... 8.6
Warning: The Tk version in /usr/include/tcl8.6/tcl.h is not in the legal Tk versions list!
tk_version: NONE
TK_MAJOR_VERSION: 8
TK_MINOR_VERSION: 6
Checking for fftw...
checking for dfftw.h... /usr/local/include/dfftw.h
checking for libdfftw.a... /usr/local/lib/libdfftw.a
checking for sfftw.h... /usr/include/sfftw.h
checking for libsfftw.a... /usr/lib/libsfftw.a
Making Makefiles
configure: creating ./config.status
config.status: creating Makefile
config.status: creating otools/Makefile
config.status: creating advisor/Makefile
config.status: creating physics/Makefile
config.status: creating xg/Makefile
config.status: creating config/Makefile
config.status: creating ./config.h
config.status: ./config.h is unchanged
config.status: executing depfiles commands
configure: WARNING: unrecognized options: --with-SCALAR
Configure successful!
if you have a multicore machine, now you can build with:
'make -j 4' (for 4 threaded compiling)
and install with:
'make install' or 'sudo make install', depending on whether you have write
permissions to /home/nirbhav/usr/local
好的,太棒了!它说成功了,但是当我尝试运行
制作
我得到的是
make all-recursive
make[1]: Entering directory '/home/nirbhav/Downloads/xoopic'
Making all in otools
make[2]: Entering directory '/home/nirbhav/Downloads/xoopic/otools'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/nirbhav/Downloads/xoopic/otools'
Making all in physics
make[2]: Entering directory '/home/nirbhav/Downloads/xoopic/physics'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/nirbhav/Downloads/xoopic/physics'
Making all in advisor
make[2]: Entering directory '/home/nirbhav/Downloads/xoopic/advisor'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/nirbhav/Downloads/xoopic/advisor'
Making all in xg
make[2]: Entering directory '/home/nirbhav/Downloads/xoopic/xg'
g++ -Wall -Wno-unused -O3 -pipe -funroll-loops -O3 -pipe -funroll-loops -DUNIX -DSCALAR_DOUBLE -fno-inline -o xoopic main.o xgmain.o -L../otools -lotools -L../advisor -ladvisor -L../physics -lphysics -lotools -ladvisor -L/usr/lib/x86_64-linux-gnu/hdf5/serial -Wl,-rpath,/usr/lib/x86_64-linux-gnu/hdf5/serial -lhdf5 -Wl,-rpath,/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/lib/x86_64-linux-gnu -ltk8.6 -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lXGC250 -L/usr/lib/x86_64-linux-gnu -Wl,-rpath,/usr/lib/x86_64-linux-gnu -lXpm -lX11 -ldl -L/usr/lib -L/usr/local/lib -ldrfftw -ldfftw -lm -lz -Wl,-rpath,/usr/lib/gcc/x86_64-linux-gnu/5 -lm
/usr/local/lib/libXGC250.a(xgcommands.o): In function `C_RunProc':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:284: undefined reference to `Tcl_DoWhenIdle'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `C_StepProc':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:325: undefined reference to `Tcl_DoWhenIdle'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:322: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `C_SetNewSpecialProc':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:581: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `DoGraphics':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:123: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `C_KillGraphicsProc':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:310: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `XG_Quit':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:39: undefined reference to `Tcl_DeleteInterp'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `DoMain':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:141: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:156: undefined reference to `Tcl_CreateTimerHandler'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:172: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:173: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `StartGraphics':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:91: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:108: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `InitTclCommands':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:717: undefined reference to `Tcl_CreateCommand'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:720: undefined reference to `Tcl_CreateCommand'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:723: undefined reference to `Tcl_CreateCommand'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:726: undefined reference to `Tcl_CreateCommand'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:729: undefined reference to `Tcl_CreateCommand'
/usr/local/lib/libXGC250.a(xgcommands.o):/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:731: more undefined references to `Tcl_CreateCommand' follow
/usr/local/lib/libXGC250.a(xgcommands.o): In function `Search':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:806: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `XGStart':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:194: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:197: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:206: undefined reference to `Tk_MainLoop'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:200: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:188: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `Signal_KillGraphicsProc':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:24: undefined reference to `Tcl_DoWhenIdle'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `DoGraphics':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:126: undefined reference to `Tcl_CreateTimerHandler'
/usr/local/lib/libXGC250.a(xgcommands.o): In function `InitTclCommands':
/home/nirbhav/Downloads/xgrafix/src/xgcommands.c:783: undefined reference to `Tcl_CreateCommand'
/usr/local/lib/libXGC250.a(xginitvar.o): In function `SetUpNewVar':
/home/nirbhav/Downloads/xgrafix/src/xginitvar.c:55: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgpaint3d.o): In function `DrawCrosshair':
/home/nirbhav/Downloads/xgrafix/src/xgpaint3d.c:299: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgpaint3d.o): In function `Paint_ThreeD_Window':
/home/nirbhav/Downloads/xgrafix/src/xgpaint3d.c:1133: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xginitc.o): In function `XGInitTclTk':
/home/nirbhav/Downloads/xgrafix/src/xginitc.c:480: undefined reference to `Tcl_CreateInterp'
/home/nirbhav/Downloads/xgrafix/src/xginitc.c:481: undefined reference to `Tcl_Init'
/home/nirbhav/Downloads/xgrafix/src/xginitc.c:483: undefined reference to `Tcl_SetVar2'
/home/nirbhav/Downloads/xgrafix/src/xginitc.c:484: undefined reference to `Tk_Init'
/home/nirbhav/Downloads/xgrafix/src/xginitc.c:485: undefined reference to `Tk_MainWindow'
/home/nirbhav/Downloads/xgrafix/src/xginitc.c:510: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xginitc.c:519: undefined reference to `Tcl_DeleteInterp'
/usr/local/lib/libXGC250.a(xgsetup.o): In function `EventProc':
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:35: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:22: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:27: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgsetup.o): In function `C_CreateWindowProc':
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:161: undefined reference to `Tk_NameToWindow'
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:162: undefined reference to `Tk_CreateEventHandler'
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:181: undefined reference to `Tk_ChangeWindowAttributes'
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:186: undefined reference to `Tk_GetGC'
/usr/local/lib/libXGC250.a(xgsetup.o): In function `XGSetupWindow':
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:143: undefined reference to `Tcl_Eval'
/usr/local/lib/libXGC250.a(xgsetup.o): In function `EventProc':
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:39: undefined reference to `Tcl_Eval'
/home/nirbhav/Downloads/xgrafix/src/xgsetup.c:29: undefined reference to `Tcl_DoWhenIdle'
collect2: error: ld returned 1 exit status
Makefile:501: recipe for target 'xoopic' failed
make[2]: *** [xoopic] Error 1
make[2]: Leaving directory '/home/nirbhav/Downloads/xoopic/xg'
Makefile:389: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/nirbhav/Downloads/xoopic'
Makefile:327: recipe for target 'all' failed
make: *** [all] Error 2
显然它失败了?要么我离成功很近了,要么我在某个地方犯了一个严重的错误!
谢谢您的帮助,我是这个论坛的新手,如果我在发帖中犯了错误,我提前道歉。