我正在尝试通过编译源代码将 vim 安装到 $HOME/bin。
./configure --prefix=$home/bin
似乎有效,但是运行 make 时我得到:
> make
Starting make in the src directory.
If there are problems, cd to the src directory and run make there
cd src && make first
gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -I/usr/openwin/include -o objects/buffer.o buffer.c
In file included from buffer.c:28:
vim.h:41: error: syntax error before ':' token
In file included from os_unix.h:29,
from vim.h:245,
from buffer.c:28:
/usr/include/sys/stat.h:251: error: syntax error before "blksize_t"
/usr/include/sys/stat.h:255: error: syntax error before '}' token
/usr/include/sys/stat.h:309: error: syntax error before "blksize_t"
/usr/include/sys/stat.h:310: error: conflicting types for 'st_blocks'
/usr/include/sys/stat.h:252: error: previous declaration of 'st_blocks' was here
/usr/include/sys/stat.h:313: error: syntax error before '}' token
In file included from /opt/local/bin/../lib/gcc/sparc-sun-solaris2.6/3.4.6/include/sys/signal.h:132,
from /usr/include/signal.h:26,
from os_unix.h:163,
from vim.h:245,
from buffer.c:28:
/usr/include/sys/siginfo.h:259: error: syntax error before "ctid_t"
/usr/include/sys/siginfo.h:292: error: syntax error before '}' token
/usr/include/sys/siginfo.h:294: error: syntax error before '}' token
/usr/include/sys/siginfo.h:390: error: syntax error before "ctid_t"
/usr/include/sys/siginfo.h:398: error: conflicting types for '__fault'
/usr/include/sys/siginfo.h:267: error: previous declaration of '__fault' was here
/usr/include/sys/siginfo.h:404: error: conflicting types for '__file'
/usr/include/sys/siginfo.h:273: error: previous declaration of '__file' was here
/usr/include/sys/siginfo.h:420: error: conflicting types for '__prof'
/usr/include/sys/siginfo.h:287: error: previous declaration of '__prof' was here
/usr/include/sys/siginfo.h:424: error: conflicting types for '__rctl'
/usr/include/sys/siginfo.h:291: error: previous declaration of '__rctl' was here
/usr/include/sys/siginfo.h:426: error: syntax error before '}' token
/usr/include/sys/siginfo.h:428: error: syntax error before '}' token
/usr/include/sys/siginfo.h:432: error: syntax error before "k_siginfo_t"
/usr/include/sys/siginfo.h:437: error: syntax error before '}' token
In file included from /usr/include/signal.h:26,
from os_unix.h:163,
from vim.h:245,
from buffer.c:28:
/opt/local/bin/../lib/gcc/sparc-sun-solaris2.6/3.4.6/include/sys/signal.h:173: error: syntax error before "siginfo_t"
In file included from os_unix.h:163,
from vim.h:245,
from buffer.c:28:
/usr/include/signal.h:111: error: syntax error before "siginfo_t"
/usr/include/signal.h:113: error: syntax error before "siginfo_t"
buffer.c: In function `buflist_new':
buffer.c:1502: error: storage size of 'st' isn't known
buffer.c: In function `buflist_findname':
buffer.c:1989: error: storage size of 'st' isn't known
buffer.c: In function `setfname':
buffer.c:2578: error: storage size of 'st' isn't known
buffer.c: In function `otherfile_buf':
buffer.c:2836: error: storage size of 'st' isn't known
buffer.c: In function `buf_setino':
buffer.c:2874: error: storage size of 'st' isn't known
buffer.c: In function `buf_same_ino':
buffer.c:2894: error: dereferencing pointer to incomplete type
buffer.c:2895: error: dereferencing pointer to incomplete type
*** Error code 1
make: Fatal error: Command failed for target `objects/buffer.o'
Current working directory /home/xluntor/vim72/src
*** Error code 1
make: Fatal error: Command failed for target `first'
我该如何修复 make 错误?或者还有其他方法可以以非 root 用户身份安装 vim?
我查看了 Sarah 发布的 Google 群组链接。链接中的“编译 Vim”页面适用于 Linux,因此命令甚至无法在 Solars 上运行。但它确实暗示将输出记录./configure
到文件中,所以我这样做了。它如下:
./configure 输出已删除。新版本进一步说明。
有谁发现有什么关键的东西缺失了吗?
所以我从 sunfreeware 下载了 vim 包。由于我没有 root 权限,所以我无法直接安装它,但我能够提取包文件。这是其中的文件结构:
`-- SMCvim `--reloc |-- 垃圾箱 |-- 文档 | `--vim `--分享 |-- 男人 |`-- man1 `--vim `--vim72 |-- 自动加载 |`--xml |-- 颜色 |-- 编译器 |-- 文档 |-- ft插件 |-- 缩进 |-- 键盘映射 |-- 语言 |-- 宏 | |-- 河内 | |-- 生活 | |-- 迷宫 | `-- 呃 |-- 插件 |-- 打印 |-- 拼写 |-- 语法 |-- 工具 `--导师
我将 SMCvim/reloc/bin 中的三个文件 (vim、vimtutor、xdd) 移动到了 $HOME/bin,现在我终于可以运行 $HOME/bin/vim 了!但是我应该把“share”目录及其内容放在哪里呢?
可能还值得一提的是,系统上已经安装了 vim,但它坏了。当我尝试运行它时,我得到了:
ld.so.1: vim: fatal: libgtk-1.2.so.0: open failed: No such file or directory
which vim
输出/opt/local/bin/vim
尝试在 Solaris 10 上编译它。
uname -a
SunOS ws005-22 5.10 Generic_141414-10 sun4u sparc SUNW,SPARC-Enterprise
新./configure
输出:
./configure --prefix=$home/bin ac_cv_sizeof_int=8 --enable-rubyinterp 配置:加载缓存 auto/config.cache 检查 make 是否设置了 $(MAKE)... 是 检查 gcc...gcc 检查 C 编译器的默认输出文件名...a.out 检查 C 编译器是否工作...是 检查我们是否正在交叉编译...否 检查可执行文件的后缀... 检查目标文件的后缀...o 检查我们是否正在使用 GNU C 编译器...是的 检查 gcc 是否接受 -g... 是 检查 gcc 选项是否接受 ISO C89...不支持 检查如何运行 C 预处理器... gcc -E 检查处理长行和 -e 的 grep... /usr/sfw/bin/ggrep 检查 egrep.../usr/sfw/bin/ggrep -E 检查包含 strerror 的库...无需 检查 gawk...gawk 检查条带...条带 检查 ANSI C 头文件...是 检查 sys/wait.h 是否与 POSIX.1 兼容...否 配置:检查有缺陷的工具... 检查 BeOS...没有 检查 QNX...没有 检查 DarWindows (Mac OS X)... 没有 检查 --with-local-dir 参数...默认为 /usr/local 检查 --with-vim-name 参数...默认为 vim 检查 --with-ex-name 参数...默认为 ex 检查 --with-view-name 参数...默认为视图 检查 --with-global-runtime 参数...没有 检查 --with-modified-by 参数...没有 检查字符集是否为 EBCDIC...否 检查--disable-seLinux 参数...没有 检查 -lselinux 中是否启用 is_selinux_enabled...没有 检查 --with-features 参数...默认为正常 检查 --with-compiledby 参数...没有 检查 --disable-xsmp 参数...否 检查 --disable-xsmp-interact 参数...否 检查 --enable-mzschemeinterp 参数...否 检查--enable-perlinterp 参数...没有 检查 --enable-pythoninterp 参数...没有 检查--enable-tclinterp 参数...没有 检查 --enable-rubyinterp 参数...是的 检查 ruby.../opt/sfw/bin/ruby 检查 Ruby 版本...确定 检查 Ruby 头文件.../opt/sfw/lib/ruby/1.6/sparc-solaris2.10 检查--enable-cscope 参数...没有 检查--enable-workshop 参数...没有 检查--disable-netbeans 参数...没有 检查 -lsocket 中的套接字...是的 检查 -lnsl 中的 gethostbyname...是的 检查是否可以编译 NetBeans 集成...否 检查 --enable-sniff 参数...否 检查--enable-multibyte 参数...没有 检查--enable-hangulinput 参数...没有 检查 --enable-xim 参数...默认为自动 检查--enable-fontset 参数...没有 检查 xmkmf.../usr/openwin/bin/xmkmf 检查 X... 库 /usr/openwin/lib,标头 /usr/openwin/include 检查 -R 后面是否必须有一个空格...否 检查 gethostbyname...是的 检查连接...是的 检查是否删除...是 检查 shmat...是的 检查 -lICE 中的 IceConnectionNumber...是的 检查是否可以找到 X11 头文件...是 检查 -lXdmcp 中的 _XdmcpAuthDoIt... 没有 检查 -lICE 中的 IceOpenConnection...是的 检查 -lXpm 中的 XpmCreatePixmapFromData...是的 检查 X11 头文件是否隐式声明返回值...否 检查 --enable-gui 参数...yes/auto - 自动 GUI 支持 检查是否寻找 GTK... 是 检查是否寻找 GTK+ 2... 是 检查是否寻找 GNOME...否 检查是否寻找 Motif...是 检查是否寻找雅典娜...是的 检查是否寻找 neXtaw... 是 检查是否寻找碳...是 检查 --with-gtk-prefix 参数...没有 检查 --with-gtk-exec-prefix 参数...没有 检查 --disable-gtktest 参数...gtk 测试已启用 检查 gtk-config.../opt/local/bin/gtk-config 检查 pkg-config.../usr/bin/pkg-config 检查 GTK - 版本 >= 2.2.0... 是;发现版本 2.4.9 检查 X11/SM/SMlib.h 可用性...是 检查 X11/SM/SMlib.h 存在...是 检查 X11/SM/SMlib.h...是的 检查 X11/xpm.h 可用性...是 检查 X11/xpm.h 存在...是 检查 X11/xpm.h...是的 检查 X11/Sunkeysym.h 可用性...是 检查 X11/Sunkeysym.h 存在...是 检查 X11/Sunkeysym.h...是的 检查 X11/Xlib.h 中的 XIMText...是的 已选择 X GUI;xim 已启用 检查 toupper 是否损坏...没有 检查 __DATE__ 和 __TIME__ 是否工作... 是 检查 elf.h 可用性...是 检查 elf.h 是否存在...是 检查 elf.h...是的 检查 -lef 中的 main...是的 检查定义 DIR 的 dirent.h...是的 检查包含 opendir 的库...无需 检查定义 union wait 的 sys/wait.h...没有 检查 stdarg.h 可用性...是 检查 stdarg.h 是否存在...是 检查 stdarg.h...是的 检查 stdlib.h 可用性...是 检查 stdlib.h 是否存在...是 检查 stdlib.h...是的 检查 string.h 的可用性...是的 检查 string.h 的存在...是的 检查 string.h...是的 检查 sys/select.h 可用性...是 检查 sys/select.h 存在...是 检查 sys/select.h...是的 检查 sys/utsname.h 可用性...是 检查 sys/utsname.h 是否存在...是 检查 sys/utsname.h...是的 检查 termcap.h 可用性...是的 检查 termcap.h 的存在...是的 检查 termcap.h...是的 检查 fcntl.h 可用性...是的 检查 fcntl.h 存在...是的 检查 fcntl.h...是的 检查 sgtty.h 可用性...是 检查 sgtty.h 是否存在...是 检查 sgtty.h...是的 检查 sys/ioctl.h 可用性...是 检查 sys/ioctl.h 存在...是 检查 sys/ioctl.h...是的 检查 sys/time.h 可用性...是 检查 sys/time.h 存在...是 检查 sys/time.h...是的 检查 sys/types.h 可用性...是 检查 sys/types.h 是否存在...是 检查 sys/types.h...是的 检查 termio.h 可用性...是的 检查 termio.h 存在...是 检查 termio.h...是的 检查 iconv.h 可用性...是的 检查 iconv.h 是否存在...是 检查 iconv.h...是的 检查 langinfo.h 可用性...是 检查 langinfo.h 是否存在... 是 检查 langinfo.h...是的 检查 math.h 可用性...是的 检查 math.h 的存在...是的 检查 math.h...是的 检查 unistd.h 可用性...是的 检查 unistd.h 的存在...是的 检查 unistd.h...是的 检查 stropts.h 可用性...否 检查 stropts.h 是否存在...是 配置:警告:stropts.h:存在但无法编译 配置:警告:stropts.h:检查是否缺少先决条件标头? 配置:警告:stropts.h:请参阅 Autoconf 文档 配置:警告:stropts.h:部分“存在但无法编译” 配置:警告:stropts.h:继续预处理器的结果 配置:警告:stropts.h:将来,编译器将优先 检查 stropts.h...是的 检查 errno.h 可用性...是 检查 errno.h 是否存在...是 检查 errno.h...是的 检查 sys/resource.h 可用性...是 检查 sys/resource.h 存在...是 检查 sys/resource.h...是的 检查 sys/systeminfo.h 可用性...是 检查 sys/systeminfo.h 存在...是 检查 sys/systeminfo.h...是的 检查 locale.h 可用性...是的 检查 locale.h 是否存在...是 检查 locale.h...是的 检查 sys/stream.h 可用性...否 检查 sys/stream.h 存在...是 配置:警告:sys/stream.h:存在但无法编译 配置:警告:sys/stream.h:检查是否缺少先决条件标头? 配置:警告:sys/stream.h:请参阅 Autoconf 文档 配置:警告:sys/stream.h:部分“存在但无法编译” 配置:警告:sys/stream.h:继续处理预处理器的结果 配置:警告:sys/stream.h:将来,编译器将优先 检查 sys/stream.h...是的 检查 termios.h 可用性...是 检查 termios.h 是否存在...是 检查 termios.h...是的 检查 libc.h 可用性...没有 检查 libc.h 的存在...没有 检查 libc.h...没有 检查 sys/statfs.h 可用性...是 检查 sys/statfs.h 是否存在...是 检查 sys/statfs.h...是的 检查 poll.h 可用性...是的 检查 poll.h 存在...是的 检查 poll.h...是的 检查 sys/poll.h 可用性...是 检查 sys/poll.h 是否存在...是 检查 sys/poll.h...是的 检查 pwd.h 可用性...是的 检查 pwd.h 是否存在...是 检查 pwd.h...是的 检查 utime.h 可用性...是的 检查 utime.h 是否存在...是 检查 utime.h...是的 检查 sys/param.h 可用性...是 检查 sys/param.h 存在...是 检查 sys/param.h...是的 检查 libintl.h 可用性...是的 检查 libintl.h 的存在...是的 检查 libintl.h...是的 检查 libgen.h 可用性...是的 检查 libgen.h 的存在...是的 检查 libgen.h...是的 检查 util/debug.h 可用性...否 检查 util/debug.h 是否存在...没有 检查 util/debug.h...没有 检查 util/msg18n.h 可用性...否 检查 util/msg18n.h 是否存在...否 检查 util/msg18n.h...没有 检查 frame.h 可用性...没有 检查 frame.h 存在...没有 检查 frame.h...没有 检查 sys/acl.h 可用性...是 检查 sys/acl.h 存在...是 检查 sys/acl.h...是的 检查 sys/access.h 可用性...否 检查 sys/access.h 存在...否 检查 sys/access.h...没有 检查 sys/sysctl.h 可用性...否 检查 sys/sysctl.h 是否存在...否 检查 sys/sysctl.h...没有 检查 sys/sysinfo.h 可用性...是 检查 sys/sysinfo.h 存在...是 检查 sys/sysinfo.h...是的 检查 wchar.h 可用性...是的 检查 wchar.h 的存在...是的 检查 wchar.h...是的 检查 wctype.h 可用性...是的 检查 wctype.h 的存在...是的 检查 wctype.h...是的 检查 sys/ptem.h...没有 检查 pthread_np.h...没有 检查 strings.h 可用性...是 检查 strings.h 是否存在...是 检查 strings.h...是的 检查 strings.h 是否可以包含在 string.h 之后...是 检查 gcc 是否需要 -traditional...否 检查符合 ANSI C 规范的 const... 是 检查 mode_t...是的 检查 off_t...是的 检查 pid_t...是的 检查size_t...是的 检查 sys/types.h 中的 uid_t...是的 检查是否可以同时包含 time.h 和 sys/time.h... 是 检查 ino_t...是的 检查 dev_t...是的 检查 rlim_t...是的 检查 stack_t...是的 检查 stack_t 是否有 ss_base 字段...没有 检查--with-tlib 参数...空:自动终端库选择 检查 -lncurses 中的 tgetent...是的 检查我们是否谈论 terminfo...是的 检查 tgetent() 对未知终端的返回值...零 检查 termcap.h 是否包含 ospeed... 是 检查 termcap.h 是否包含 UP、BC 和 PC... 是 检查 tputs() 是否使用 outfuntype...否 检查 sys/select.h 和 sys/time.h 是否可以同时包含...是 检查 /dev/ptc...没有 检查 SVR4 ptys... 是 检查 ptyranges...不知道 检查默认 tty 权限/组...无法确定 - 假设 ptys 可供全世界访问 世界 检查信号处理程序的返回类型...void 检查 struct sigcontext...否 检查 getcwd 实现是否损坏...否 检查 bcmp...是的 检查 fchdir...是的 检查 fchown...是的 检查 fseeko...是的 检查 fsync...是的 检查 ftello... 是 检查 getcwd...是的 检查 getpseudotty...没有 检查 getpwnam...是的 检查 getpwuid...是的 检查 getrlimit...是的 检查 gettimeofday...是的 检查 getwd...是的 检查 lstat...是的 检查 memcmp...是的 检查 memset...是的 检查 nanosleep... 没有 检查 opendir...是的 检查 putenv...是的 检查 qsort...是的 检查 readlink...是的 检查选择...是 检查 setenv...是的 检查 setpgid...是的 检查 setsid...是的 检查 sigaltstack...是的 检查 sigstack...是的 检查 sigset...是的 检查 sigsetjmp...是的 检查信号...是 检查 sigvec...没有 检查 strcasecmp...是的 检查 strerror...是的 检查 strftime...是的 检查 stricmp...否 检查 strncasecmp...是的 检查 strnicmp...没有 检查 strpbrk...是的 检查 strtol...是的 检查 tgetent...是的 检查拖曳...是的 检查 towupper...是的 检查 iswupper...是的 检查 usleep...是的 检查 utime...是的 检查 utimes...是的 检查 st_blksize...没有 检查 stat() 是否忽略尾部斜杠……否 检查 iconv_open()...是; 使用 -liconv 检查 nl_langinfo(CODESET)... 是 检查 -lm 中的 strtod...是的 检查 strtod() 和其他浮点函数...是的 检查--disable-acl 参数...没有 检查 -lposix1e 中的 acl_get_file...没有 检查 -lacl 中的 acl_get_file...没有 检查 POSIX ACL 支持...否 检查 Solaris ACL 支持...是 检查 AIX ACL 支持...否 检查--disable-gpm 参数...没有 检查 gpm...没有 检查--disable-sysmouse 参数...没有 检查 sysmouse... 没有 检查重命名...是 检查 sysctl...不可用 检查系统信息...不可用 检查 sysinfo.mem_unit...没有 检查 sysconf...是的 检查 int 的大小...(缓存)8 检查 memmove 句柄是否重叠...是 检查 -lxpg4 中的 _xpg4_setrunelocale... 没有 检查如何创建标签... ctags -t 检查如何使用部分编号运行 man...man -s 检查--disable-nls 参数...没有 检查 msgfmt... msgfmt 检查 NLS...没有“po/Makefile”-已禁用 检查 dlfcn.h 可用性...是 检查 dlfcn.h 存在...是 检查 dlfcn.h...是的 检查 dlopen()...是的 检查 dlsym()... 是 检查 setjmp.h 可用性...是的 检查 setjmp.h 的存在...是的 检查 setjmp.h...是的 检查 GCC 3 或更高版本...是 配置:更新缓存 auto/config.cache 配置:创建自动/config.status config.status:创建 auto/config.mk config.status:创建 auto/config.h
制作:
制作 在 src 目录中启动 make。 如果有问题,请 cd 到 src 目录并在那里运行 make cd src && 首先制作 mkdir 对象 CC="gcc -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/openwin/include -I/opt/sfw/lib/ruby/1.6/sparc-solaris2.10 " srcdir=.sh ./osdef.sh gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/openwin/include -I/usr/sfw/include -I/usr/sfw/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -I/usr/openwin/include -I/opt/sfw/lib/ruby/1.6/sparc-solaris2.10 -oobjects/buffer.obuffer.c 在 os_unix.h:29 包含的文件中, 来自 vim.h:245, 来自 buffer.c:28: /usr/include/sys/stat.h:251:错误:“blksize_t”之前的语法错误 /usr/include/sys/stat.h:255:错误:'}' 标记之前的语法错误 /usr/include/sys/stat.h:309: 错误:“blksize_t”之前的语法错误 /usr/include/sys/stat.h:310:错误:‘st_blocks’类型冲突 /usr/include/sys/stat.h:252:错误:先前的“st_blocks”声明在这里 /usr/include/sys/stat.h:313:错误:'}' 标记之前的语法错误 在从 /opt/local/bin/../lib/gcc/sparc-sun-solaris2.6/3.4.6/include/sys/signal.h:132 包含的文件中, 来自 /usr/include/signal.h:26, 来自 os_unix.h:163, 来自 vim.h:245, 来自 buffer.c:28: /usr/include/sys/siginfo.h:259:错误:“ctid_t”之前的语法错误 /usr/include/sys/siginfo.h:292:错误:'}' 标记之前的语法错误 /usr/include/sys/siginfo.h:294:错误:'}' 标记之前的语法错误 /usr/include/sys/siginfo.h:390:错误:“ctid_t”之前的语法错误 /usr/include/sys/siginfo.h:398: 错误:‘__fault’ 类型冲突 /usr/include/sys/siginfo.h:267:错误:先前的“__fault”声明在这里 /usr/include/sys/siginfo.h:404:错误:‘__file’类型冲突 /usr/include/sys/siginfo.h:273:错误:先前的“__file”声明在这里 /usr/include/sys/siginfo.h:420:错误:‘__prof’ 类型冲突 /usr/include/sys/siginfo.h:287:错误:先前的“__prof”声明在这里 /usr/include/sys/siginfo.h:424:错误:‘__rctl’类型冲突 /usr/include/sys/siginfo.h:291:错误:先前的“__rctl”声明在这里 /usr/include/sys/siginfo.h:426:错误:'}' 标记之前的语法错误 /usr/include/sys/siginfo.h:428:错误:'}' 标记之前的语法错误 /usr/include/sys/siginfo.h:432:错误:“k_siginfo_t”之前的语法错误 /usr/include/sys/siginfo.h:437:错误:'}' 标记之前的语法错误 在 /usr/include/signal.h:26 包含的文件中, 来自 os_unix.h:163, 来自 vim.h:245, 来自 buffer.c:28: /opt/local/bin/../lib/gcc/sparc-sun-solaris2.6/3.4.6/include/sys/signal.h:173: 错误:“siginfo_t”之前的语法错误 在 os_unix.h:163 包含的文件中, 来自 vim.h:245, 来自 buffer.c:28: /usr/include/signal.h:111:错误:“siginfo_t”之前的语法错误 /usr/include/signal.h:113:错误:“siginfo_t”之前的语法错误 buffer.c: 在函数‘buflist_new’中: buffer.c:1502:错误:‘st’ 的存储大小未知 buffer.c: 在函数‘buflist_findname’中: buffer.c:1989:错误:‘st’ 的存储大小未知 buffer.c: 在函数“setfname”中: buffer.c:2578:错误:‘st’ 的存储大小未知 buffer.c: 在函数‘otherfile_buf’中: buffer.c:2836:错误:‘st’ 的存储大小未知 buffer.c: 在函数‘buf_setino’中: buffer.c:2874:错误:‘st’ 的存储大小未知 buffer.c: 在函数‘buf_same_ino’中: buffer.c:2894:错误:取消引用指向不完整类型的指针 buffer.c:2895:错误:取消引用指向不完整类型的指针 *** 错误代码 1 make:致命错误:目标“objects/buffer.o”命令失败 当前工作目录 /home/xluntor/vim72/src *** 错误代码 1 make:致命错误:目标“first”的命令失败
答案1
Solaris 2.6 相当老了,于 1997 年发布,并且自 2006 年起不再受支持。
无论如何,为什么不安装已经编译好的二进制文件,而是自己编译呢?
http://www.sunfreeware.com/programlist.html#vim ftp://ftp.sunfreeware.com/pub/freeware/sparc/2.6/vim-7.2-sol26-sparc-local.gz 您可能需要先安装依赖项:gtk+-1.2.10、glib-1.2.10 和 ncurses。
答案2
尝试结账这次谈话。
答案3
我认为问题的一部分是在配置过程中我们看到这一行:
检查 int 的大小...(缓存)0
您可以尝试运行./configure --prefix=$home/bin ac_cv_sizeof_int=4
,这对于 32 位系统来说应该是正确的。这正是刚才我在思考这个问题时困扰我的问题。
答案4
由于一些非技术性的原因,我也使用了类似旧版本的 Solaris。
我已经构建和安装了许多更新的应用程序(包括 VIM,但我不再有那个构建脚本)。
最重要的是使用正确的编译器。大多数情况下,这是通过指定要传递给 configure 的 CC 和 CXX 值来完成的。
下面是我为了构建 WindowMaker 所需要的一个例子,这样我就可以放弃缓慢而丑陋的基于 Java 的窗口管理器......
#!/bin/sh
cd WindowMaker-0.92.0
configure --prefix=/usr/local2 --with-x --enable-usermenu CC=c89 CFLAGS="-D__EXTENSIONS__ -I/usr/local2/include" CXX=CC LDFLAGS=-L/usr/local2/lib