幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6974|回复: 16

[求助]请教熟悉MinGW的人,关于termios/termcap

[复制链接]

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
发表于 2007-10-29 15:49:08 | 显示全部楼层 |阅读模式
根据查到的资料,MinGW/MSYS本身应该是不支持需要termios.h的程序的编译(虽然MSYS本身也使用了termcap)。对termios.h的支持貌似只有msysDVLPR里才有,而msysDTK里也没。那么假如我需要安装msysDVLPR,应该如何做才能保证配置的正确?我觉得十分奇怪,在普通的MinGW/MSYS里编译GNU Readline/History时,至少./configure还能成功(但会抱怨缺少termios.h和termcap);换到msysDVLPR里干脆说无法识别build系统而拒绝make,超郁闷。

扩充来问,MSYS的那些辅助库(MSYS: Supplementary Tools),例如说libiconv, GMP, zlib等,应该如何安装才算正确?
那些包里多数都是包含一个usr目录,里面是各自的内容(include/lib等)。但MSYS的/usr不是一个符号链接么?假如我的MSYS装在C:\msys\1.0\下,那么/usr指向的实际地址也就是c:/msys/1.0/。应该把那些辅助包解到什么地方才对?

以前用MinGW很少用到本身没有的东西,Boost也顺利装上了……但是GNU的那套toolchain真是难对付。请求高手帮忙啊……

P.S. 米粒一定知道我为什么问这个……挺郁闷的,虽然现在决定不用那些RP的依赖,但这个问题还是得弄清楚才好。
P.S.S 我是希望得到在MinGW下的解决方案。如果要推荐Cygwin的话不用了,那个我也有装,一切正常。
回复

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-10-29 17:56:37 | 显示全部楼层
libiconv...zlib之类的
在MINGW上一般推荐是用GNUWIN32下面的有个专门的包...
下载后直接解压到GCC的文件夹
GMP的话...你可以自行编译后,安装在GCC的文件夹里就成了....
在MINGW下要注意以下几点....不要使用WIN风格的绝对路径...尽可能的使用UNIX风格的相对路径...
编译时设定一下环境变量PATH...
解压时...建议不要使用WINRAR以上
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
 楼主| 发表于 2007-10-29 18:49:56 | 显示全部楼层
GnuWin32的包我也有下载。不过那些包似乎都依赖于其中的LibC?反正我尝试过编译其中的一些,发觉一直得到底下把LibC也编译出来,觉得太烦就没弄。
请问这里指的gcc的文件夹具体是指什么呢?
我的MinGW装在c:/mingw,MSYS装在c:/msys/1.0。是直接解到MinGW所在的目录就可以了么?
但是就以termcap为例,termcap-1.3.1-bin.zip里,有bin、contrib、etc、manifest这四个目录。其中bin里的是一个dll。整个binary distribution里都没有include header,这样也没办法在自己的程序里使用termcap啊……

继续求教 <(_ _)>
回复 支持 反对

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-10-29 20:59:31 | 显示全部楼层
GNUWIN32没有说过具体要依赖哪些库文件...如果你仔细看过它的下载包的话...后面都会跟有dep...bin...lib...doc...之类的...分别指带了访包的运行程序的依赖包...执行文件..库....文档等等...所以LIBC的情况...我还没遇到过
另外GCC的文件夹是指你的预编译环境也就是你放置头文件...GCC编译器...binutil的地方...部份可能在MSYS里已经有了...这无所谓
也就是一般你所指的MINGW文件夹....(长期在使用自己编译的GCC...忘了)
还有关于你的Termcap如果你仔细看过说明的话...
http://gnuwin32.sourceforge.net/packages/termcap.htm
上面已经说明了...Termcap只是一个库文件而以...因此是不会存在运行程序的...DLL是为了当你使用该库后的调用做准备的....
你要找的HEADER中应当在http://gnuwin32.sourceforge.net/downlinks/termcap-lib-zip.php中找得到...以上
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
 楼主| 发表于 2007-10-29 21:28:08 | 显示全部楼层
是的,我仔细看过说明。
因此是不会存在运行程序的
我应该没有提到过“运行程序”,而是说
没办法在自己的程序里使用termcap
嗯我需要的只是*.o/*.a/*.lib和对应的header而已。待会儿去check out一下上面的termcap-lib看看。多谢啊~~

那么进一步回到开头的问题:我是在编译GNU Readline/History的时候失败了。谢天谢地,GnuWin32有编译好的binary。如果能正确使用它那我就不头疼了……等周末有空了再试试 XD
回复 支持 反对

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-10-29 21:58:20 | 显示全部楼层
测试了一上TERMCAP...失败....应该是缺了什么库文件之类的...话说用CYGWIN 从TOolchain开始....应当怎么弄...找不到具体的做法啊...
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-10-29 22:43:26 | 显示全部楼层
MinGW是没有Cygwin那么成熟的,不时出点RP错误也正常。通常偶编译安装MinGW的包时都强制指定prefix,configure的时候强制指定CPPFLAGS和LDFLAGS环境变量,加上include和lib路径,一般都能成功。经过测试,如果不指定prefix和环境变量,GCC就会在(MinGW)/include、(MinGW)/lib或(MinGW)/i686-pc-mingw32/include、(MinGW)/i686-pc-mingw32/lib找header和lib,而包一般都不会安装在这里的。

另外MinGW和MSYS的安装路径建议是MinGW安装在MSYS的子目录下,例如C:\\MSYS\\MinGW,因为MSYS的FileSystem的根目录是MSYS的安装目录,这样MinGW编译环境就是在/MinGW,这样比较符合Unix风格,而且MinGW的编译器和MSYS的系统工具互相调用也方便。

另外Cygwin其实也是一种解决方案,但不是说编译成Cygwin的二进制文件,只是用它的Shell。Cygwin下可以安装MinGW的编译器,而且安装Cygwin的时候默认就安装了。调用cygwin-gcc的时候只要指定-mno-cygwin(可以在configure时指定CC=gcc -mno-cygwin),系统就会使用同cygwin-gcc同版本的MinGW的toolchain编译,在Cygwin的shell下成功的机会比MSYS要大,就是编译的时候慢一点罢了。另外也可以直接把MinGW native的GCC安装到cygwin下,并把路径加到PATH里,然后configure的时候指定--host=i686-pc-mingw32进行交叉编译,因为Cygwin也可以运行native Windows程序,这样就不需要有同版本的cygwin-gcc。

偶一般编译GCC的时候用Cygwin,其他时候用MSYS,基本没有什么问题。
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

8

主题

215

帖子

2223

积分

⑥精研

积分
2223
 楼主| 发表于 2007-10-30 12:12:39 | 显示全部楼层
MSYS里在fstab加上c:/mingw /mingw也一样.默认情况下先装MinGW后装MSYS的话会自动设置成这样吧
但是MSYS的/usr到底是在哪里定义的? 明明只是个符号链接,应该在什么配置文件里能改变才对(吧?)
我在MinGW下编译倒是每次都有指定--prefix=/mingw,不过CFLAGS/CPPFLAGS/LDFLAGS没有每次都设置.或许这里是有点问题.自我检讨一下...

多谢大家的指点啊~~在Windows上用GNU工具还就是不太习惯,诶...
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-10-30 17:10:14 | 显示全部楼层
MSYS的/usr好象是强制定义的(就像/c之类的),指向MSYS的根目录,就是/,我想MinGW的开发者们也是有特殊原因才这么设置的吧。另外我安装包都装在/usr/local,没有什么问题,不装在/MinGW是为了可以迅速保存和转移已安装的包,就算崩溃了也最多重新装MSYS和MinGW。

MinGW的文档好象有说怎么改变默认装载点,但我试过都不成功,所以就干脆迁就它把MSYS和MinGW装在一起了。个人还是建议重新装一下MinGW和MSYS,装在一起。至于分开为什么不好我也说不清,只是在一起感觉问题少了很多,RPWT?

MinGW和MSYS的组件可以用SourceForge里的preview版更新一下,虽说是preview但工作还挺稳定的,用安装程序装的版本都比较旧,有时会出点问题,特别是bash建议更新。
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

20

主题

197

帖子

2641

积分

⑥精研

积分
2641
QQ
发表于 2007-10-30 17:56:47 | 显示全部楼层
etc/fstab是修改映射点的.....以下....一直想试试1.0.11版...嗯今晚试试
签名要少于60,SO,i haven't upload my pic
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-3 02:06 , Processed in 0.030221 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表