【问题标题】:How to install tsim-0.84 on Windows 10 with Cygwin?如何使用 Cygwin 在 Windows 10 上安装 tsim-0.84?
【发布时间】:2017-01-12 20:43:54
【问题描述】:

对于课堂实验,我们使用了一个旧的 Linux 火车模拟器,称为 tsim。我试图让它在我的带有 Cygwin 的 Windows 10 笔记本电脑上运行,但在运行“make”命令时出现错误。

AddToggleWidget.c:3:27: fatal error: X11/Intrinsic.h: No such file or directory

问题是我认为模拟器太旧了,它想使用来自一个名为 xorg-x11-devel 的旧库中的 X11/Intrinsic.h。因为我已经在一个名为 libXt-devel 的较新版本中拥有它。这是基于这个旧的cygwin thread

我到处寻找获取 xorg-x11-devel 库的方法,但找不到,因此我们将不胜感激。

The laboration.

The Train Simulator, tsim(source code).

【问题讨论】:

    标签: cygwin x11


    【解决方案1】:

    您需要安装 libXt-devel 软件包。 验证是否正确安装了 libXt-devel

    $ cygcheck -c libXt-devel
    Cygwin Package Information
    Package              Version        Status
    libXt-devel          1.1.5-1        OK
    

    看起来你真正的问题是如何在 cygwin 上构建 tsim 而你关注的是错误的问题,我也会为你提供我使用的配方。 正确构建和链接需要以下补丁:

    --- orig/tsim-0.84/src/Makefile.am      2008-09-10 12:45:17.000000000 +0200
    +++ tsim-0.84/src/Makefile.am   2016-09-05 22:06:47.665318000 +0200
    @@ -11,5 +11,6 @@
     tsim_CFLAGS = -std=gnu99 -pedantic -Wall -Wextra -Wmissing-prototypes \
                   -DRESDIR=\"${datadir}/tsim\"
    
    -tsim_LDFLAGS = -L/usr/X11R6/lib -lXaw -lXt -lXmu -lX11 -lXext
    +tsim_LDFLAGS = -L/usr/lib
    +tsim_LDADD = -largp
    
    --- orig/tsim-0.84/src/bitmap.c 2008-09-08 13:14:16.000000000 +0200
    +++ tsim-0.84/src/bitmap.c      2016-09-05 22:14:02.032117400 +0200
    @@ -17,14 +17,14 @@
     static void GetBitmapPath(
           String name,
           String full_name) {
    -  sprintf(full_name, "%s/%s/%s", app_dir(), bitmap_dir(), name);
    +  sprintf(full_name, "%s%s/%s", app_dir(), bitmap_dir(), name);
     }
    
     void ReadCustomBitmaps(
           Widget w) {
       char custom_directory[BUFSIZE];
    
    -  sprintf(custom_directory, "%s/%s/customBitmaps", app_dir(), bitmap_dir());
    +  sprintf(custom_directory, "%s%s/customBitmaps", app_dir(), bitmap_dir());
       gBitmapDirectory = BDAddDirectory(w, custom_directory, NULL);
     }
    
    --- orig/tsim-0.84/src/pipe.c   2008-09-09 12:55:58.000000000 +0200
    +++ tsim-0.84/src/pipe.c        2016-09-05 18:47:40.261754300 +0200
    @@ -3,6 +3,7 @@
     #include <stdlib.h>      /* exit */
     #include <unistd.h>      /* read */
     #include <sys/param.h>    /* MIN, MAX */
    +#include <sys/socket.h>
    
     #if defined sun3 || defined sun4
       #include <sys/filio.h>
    

    Makefile.am 更改为 /usr/X11R6/lib 很久以前已被 /usr/lib 替换,并且这些库应该放在 LDADD 而不是 LDFLAGS 上以避免订单 durink 链接问题。需求中缺少-largp,而其他库将在configure期间正确添加
    需要更改 bitmap.c 以避免错误加载默认数据。 Cygwin 对以“//”开头的路径有专门的含义,这是当前代码的副作用。

    分步说明:
    - 安装libargp-devellibX11-devellibXaw-devellibXext-devellibXmu-devellibXt-devel
    - 解压 tsim-0.84.tar.gz
    - 应用补丁
    - 运行 autoreconf ,它将正确重建 Makefile.in
    - 运行 ./configure 它将正确重建 Makefile
    - 运行make
    - 运行make install
    - 运行tsim

    作为奖励,程序的外观:

    【讨论】:

    • 我意识到我的标题可能有点误导,但您显然没有阅读该帖子。正如我所说,我已经有了这个包:$ cygcheck -p X11/Intrinsic.h Found 2 matches for X11/Intrinsic.h libXt-devel-1.1.4-2 - libXt-devel: X.Org X Toolkit library (installed binaries and support files) libXt-devel-1.1.5-1 - libXt-devel: X.Org X Toolkit library (installed binaries and support files)
    • 我阅读了您的帖子,并回答了如何安装X11/Intrinsic.h。如果您想知道如何构建 tsim,这是一个不同的问题。仅供参考cygcheck -p 询问 cywin 服务器而不是您的本地安装。 cygcheck -c 检查您的安装。
    • 就像我说的,我已经安装了这个库,但是 tsim "make" 无法识别它。这就是为什么我想安装一个包含X11/Intrinsic.h 的旧包。
    • 谢谢!是的,只有 windows 用户,第一次使用 cygwin,所以不知道 tsim 需要这样修复!
    • 猜我说得太早了。我已经完成了你在帖子中所说的一切,但我仍然想念 X11 库......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2019-07-04
    • 2017-07-16
    相关资源
    最近更新 更多