免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 醉卧水云间
打印 上一主题 下一主题

写在multiget1.0发表之后[感谢及期望] [复制链接]

论坛徽章:
0
51 [报告]
发表于 2006-11-14 08:31 |只看该作者
原帖由 jellen 于 2006-11-13 22:59 发表
哎呀,晚了一步,原来已经有朋友做了MacOS X的移植
我今天也花了些时间在Mac上编译了Multiget,整个过程比较顺利。
遇到几个编译错误,大概是和BSD系列不支持ftruncate64/fopen64引起。
我胡乱把ftrunca ...

据我所知,BSD很早就支持64位了,所以这些调用不需要加上xx64就可以支持64位。

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
52 [报告]
发表于 2006-11-14 09:15 |只看该作者
支持楼主

论坛徽章:
38
2017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:2720周年集字徽章-周	
日期:2022-01-13 15:12:33
53 [报告]
发表于 2006-11-14 14:37 |只看该作者
原帖由 mingyanguo 于 2006-11-14 08:31 发表

据我所知,BSD很早就支持64位了,所以这些调用不需要加上xx64就可以支持64位。


我也怀疑是这个原因,可惜还没有人把Multiget移植到BSD.

论坛徽章:
0
54 [报告]
发表于 2006-11-14 15:47 |只看该作者
在 FreeBSD 6.1 上编译通过。需要进行以下修正:
1. makefile 中用 wxgtk2u-2.6-config 替换 wx-config(我装的是 wxGTK 2.6 unicode 版,不同的版本很可能不一样)
2. mgfilemanager.cpp 中用 ftruncate 替换 ftruncate64,fopen 替换 fopen64
3. mgsocket.h 中添加 #inlcude <netinet/in.h>

我的系统:
isjfk@ark0$ uname -a
FreeBSD ark0.isjfk.org 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sun May  7 04:32:43 UTC 2006     root@opus.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386


附件中有 patch。

运行我还没打算试,因为我的显示器是经过切换器连接在两台机器上的,进入图形界面之后显示器非常不稳定,所以我现在只用命令行...

multiget.patch.tar.gz

1.99 KB, 下载次数: 32

论坛徽章:
0
55 [报告]
发表于 2006-11-14 16:27 |只看该作者

论坛徽章:
38
2017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:2720周年集字徽章-周	
日期:2022-01-13 15:12:33
56 [报告]
发表于 2006-11-14 16:28 |只看该作者
原帖由 isjfk 于 2006-11-14 15:47 发表
在 FreeBSD 6.1 上编译通过。需要进行以下修正:
1. makefile 中用 wxgtk2u-2.6-config 替换 wx-config(我装的是 wxGTK 2.6 unicode 版,不同的版本很可能不一样)
2. mgfilemanager.cpp 中用 ftruncate 替换  ...



非常感谢你的工作!下一个版本中会加入这个东西。另外FreeBSD上的编译器会不会带上预定义的常量,比如__FREEBSD__来分辨平台?如果有这么个东西就可以用#ifdef来控制一些不同的地方了。

论坛徽章:
0
57 [报告]
发表于 2006-11-14 16:41 |只看该作者
原帖由 醉卧水云间 于 2006-11-14 16:28 发表



非常感谢你的工作!下一个版本中会加入这个东西。另外FreeBSD上的编译器会不会带上预定义的常量,比如__FREEBSD__来分辨平台?如果有这么个东西就可以用#ifdef来控制一些不同的地方了。


判断平台应当在configure.ac/in里这样进行。


  1. SYSTEM=`uname -s`
  2. AC_MSG_RESULT([$SYSTEM])
  3. if test $SYSTEM = "FreeBSD" || test $SYSTEM = "OpenBSD"; then
  4.   AC_DEFINE(__BSD__)
  5. fi
  6. if test $SYSTEM = "OpenBSD"; then
  7.   AC_DEFINE(OPENBSD)                                                            fi
  8. if test $SYSTEM = "FreeBSD"; then
  9.   AC_DEFINE(FREEBSD)
  10. fi     
  11. if test $SYSTEM = "Linux"; then
  12.    AC_DEFINE(LINUX)                                                             fi
复制代码

[ 本帖最后由 gnap 于 2006-11-14 16:43 编辑 ]

论坛徽章:
38
2017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:2720周年集字徽章-周	
日期:2022-01-13 15:12:33
58 [报告]
发表于 2006-11-14 16:46 |只看该作者
再次谢谢isjfk,有个小问题麻烦帮测试。
附件是matt帮忙写的autotools管理,或许可以自动配置好makefile而不需要手工修改,起先在linux下测试一般也用不到这个东西,因为都是wx-config命令,mac下好像也是,BSD下是wxgtk2u-2.6-config我还是第一次碰到,如果自动配置脚本能在BSD下发现wxgtk2u-2.6-config这个东西,我会在下个版本中添加进来,这样就不用再改写makefile了,麻烦你测试一下附件,展开到multiget的目录上,src目录的上层,然后./configure , make

auto.tar.gz

166.34 KB, 下载次数: 27

autotools

论坛徽章:
38
2017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之深圳
日期:2023-02-16 14:39:0220周年集字徽章-年
日期:2022-08-31 14:25:28黑曼巴
日期:2022-08-17 18:57:0919周年集字徽章-年
日期:2022-04-25 13:02:5920周年集字徽章-20	
日期:2022-03-29 11:10:4620周年集字徽章-年
日期:2022-03-14 22:35:1820周年集字徽章-周	
日期:2022-03-09 12:51:3220周年集字徽章-年
日期:2022-02-10 13:13:4420周年集字徽章-周	
日期:2022-02-03 12:09:4420周年集字徽章-20	
日期:2022-01-25 20:14:2720周年集字徽章-周	
日期:2022-01-13 15:12:33
59 [报告]
发表于 2006-11-14 16:55 |只看该作者
原帖由 gnap 于 2006-11-14 16:41 发表


判断平台应当在configure.ac/in里这样进行。

[code]
SYSTEM=`uname -s`
AC_MSG_RESULT([$SYSTEM])
if test $SYSTEM = "FreeBSD" || test $SYSTEM = "OpenBSD"; then
  AC_DEFINE( ...


谢谢!因为不熟悉,所以暂时没有用到autotools,虽然有人在1.0发布后帮写过,但1.0自身没有包含,刚上面的帖子里我就附带了这么个东西,如果能正常配置好makefile那以后就用它了。

在configure里分辨平台应该不如在编译器里那么方便,如果源码里支持就会更好些,这样源码编译依赖的少,有关UNICODE的修改也都是在源码里。

论坛徽章:
0
60 [报告]
发表于 2006-11-14 17:02 |只看该作者
原帖由 醉卧水云间 于 2006-11-14 16:55 发表


谢谢!因为不熟悉,所以暂时没有用到autotools,虽然有人在1.0发布后帮写过,但1.0自身没有包含,刚上面的帖子里我就附带了这么个东西,如果能正常配置好makefile那以后就用它了。

在configure里分辨平台应 ...


在configure里判断后,编译时会通过-D定义相应的宏,你在源代码里用ifdef判断就是。
如果configure输出了config.h之类的文件,那么include这个头文件就okay了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP