以非 root 身份在 Solaris Sparc 10 上安装 vim7.2

以非 root 身份在 Solaris Sparc 10 上安装 vim7.2

我正在尝试通过编译源代码将 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

相关内容