如何使用Cygwin在Windows 10上安装tsim-0.84?

时间:2016-09-05 13:05:43

标签: cygwin x11

对于课堂实验,我们使用一种叫做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).

1 个答案:

答案 0 :(得分:0)

您需要安装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替换,并且libs应该放在LDADD而不是LDFLAGS上,以避免订单durink链接问题。该要求中缺少-largp,而configure期间其他库将被正确添加 需要更改bitmap.c以避免错误地加载默认数据。 Cygwin对于以&#34; //&#34;开头的路径具有专属意义。这是当前代码的副作用。

分步说明:
- 安装libargp-devellibX11-devellibXaw-devellibXext-devellibXmu-devellibXt-devel
- 打开tsim-0.84.tar.gz的包装 - 申请补丁
- 运行autoreconf,它将正确重建Makefile.in
- 运行./configure它将正确重建Makefile
- 运行make
- 运行make install
- 运行tsim

作为奖励,该计划的外观如何:

enter image description here