对于课堂实验,我们使用一种叫做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库的方法,但无法找到它,所以任何帮助都会非常感激。
答案 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-devel
,libX11-devel
,libXaw-devel
,libXext-devel
,libXmu-devel
,libXt-devel
- 打开tsim-0.84.tar.gz的包装
- 申请补丁
- 运行autoreconf
,它将正确重建Makefile.in
- 运行./configure
它将正确重建Makefile
- 运行make
- 运行make install
- 运行tsim
作为奖励,该计划的外观如何: