安徽新闻网5月17日电
(杨保国吴兰)记者从中国科技大学获悉,连日来,四川地震灾情牵动着中科大领导和师生们的心,大家以各种方式表达对灾区人民的关心和支持,并纷纷捐款献爱心。截止到5月16日下午5点,不到三天时间,科大师生共捐款104.5万余元,其中教职工捐款近80万元,学生募款24.6万余元。
在这次捐款活动中,学校领导带头捐款,广大师生员工纷纷慷慨解囊。生命科学学院的向成斌老师一人捐款1万元。一些职工本人是低保,也向灾区人民捐款献爱心。在科大工作的一些临时工,也从自己微薄的工资中拿出钱来支援灾区。据了解,科大教职工集中捐款截止时间原定在5月16日中午12点,但由于部分教师出差在外,纷纷打电话要求延长时间,所以捐款截止时间延长到5月19日中午12点。
中科大广大学生在这次捐款献爱心活动中表现得异常踊跃。5月14日中午,科大芳草社自愿者协会、校学生会、校研究生会组织几十名志愿者,在东、西、南三个校区设置五个点,现场募捐。有许多同学将自己身上所带现金全部捐出,一名同学连自己的储蓄罐都抱来了,倾其所有。当日晚餐时段,同学们还组织了“情系巴蜀,爱溢科大——抗震义演募捐”活动,十多名校园歌手用歌声表达了对灾区人民的关爱与祝福。不到一天时间,同学们就募集义款24.6万余元。
此外,科大芳草社、校学生会、校研究生会还举办了“情系巴蜀,爱溢科大——志愿献血集体预约活动”,将“血浓于水”的爱献给灾区人民。由于近期合肥市血液中心采血工作量大,为方便同学们参加赈灾献血,学校与合肥市血液中心达协商,以集体预约的方式献血。仅5月16日中午、晚餐3个多小时,就有700多名同学登记预约。
与此同时,中科大悉心关心来自灾区的同学。地震发生后,学校领导高度重视,立即召集有关部门研究对策。根据学校的统一部署,各院系对来自灾区的学生及其家庭的情况进行了详细了解,对家庭受灾的,做好情况统计并向学校报告,学校将根据具体情况,给予资助和帮助。同时,积极做好灾区学生的思想工作,及时向他们通报灾情和救援情况,帮助他们联系家人,抚慰他们的情绪,鼓励他们增强信心,在校安心学习。学校心理教育中心还在第一时间启动了心理危机干预预案,为来自灾区的同学提供及时的心理援助。据了解,中科大有约800名同学来自四川、重庆等地区,其中180多人来自地震灾区,目前,他们的情绪比较稳定,学习、生活正常。
Month: May 2008
编译aMule 2.2 SVN Universal Binary
首先还是推荐先去看wiki上的文章 http://www.amule.org/wiki/index.php/HowTo_compile_on_Mac (以下简称原文),但是这个文章很久都没有更新了,所以照做肯定没戏,不过借此可以了解其依赖关系等基本信息。
第一步,安装Xcode 3.0,这个在Leopard光盘里面有,也可以从Apple Developer Connection下载安装;
第二步,安装Macports 1.6 for Leopard,安装方法和shell变量设置参见官方guide。其实原文中提到的automake、flex等几个工具都可以直接从tarball编译,但是由于依赖关系比较复杂,所以还是推荐从Macports安装。需要注意的是其中某些lib会在编译过程中进行连接,所以必须编译成为UB代码,这一点只需要在安装时加参数+universal,比如sudo port -v install automake +universal,但不能写成sudo port -v install gettext automake +universal,这样写gettext依然只有i386 arch的代码。按这个方法用macports安装automake, flex, gettext, libpng即可。
ps:原文中说macports中crypto++很古旧,其实已经更新到5.5.2了,呵呵。
第三步,编译安装crypto++。这个东西非常烦人,困惑了很久,等下具体说。下载crypto 5.5.2源代码(官网好像被墙了?从sourceforge上下吧)。crypto++没有configure文件,需要修改GNUmakefile。在第一行CXXFLAGS中增加参数-arch i386 -arch ppc,即改为CXXFLAGS = -DNDEBUG -g -O2 -arch i386 -arch ppc,然后make -f GNUmakefile进行编译(貌似不使用参数f连接时会出现找不到lcryptopp的情况)。接下来sudo make install PREFIX=/usr/local/cryptopp进行安装(这个地方我做了一件比较笨的事情,不单安装在了/usr/local/cryptopp,而且在/usr和SDK的/Developer/SDKs/MacOSX10.5.sdk/usr下面各装了一次,所以最后自己也搞不清楚连接时究竟用了哪一个,也没找到哪里有编译log,还望高手赐教)。
第四步,编译wxMac。首先去官网下载wxMac-2.8.7源代码,解压后在终端执行:
cd wxMac-2.8.7/build
../configure –disable-shared –enable-unicode –enable-debug –enable-debug_gdb –enable-universal_binary
这一步完全按照原文进行。编译完成后不需要install,但是要把amule-cvs目录和wxMac-2.8.7目录放在同一个目录下面。
第五步,编译aMule。在终端执行:
cd amule-cvs
./configure –disable-systray –disable-gtk –enable-embedded_crypto
–with-wx-config=../wxMac-2.8.7/build/wx-config
–enable-cas –enable-webserver –enable-amulecmd
–enable-debug –disable-optimize –with-crypto-prefix=/usr/local/cryptopp
–disable-dependency-tracking
CFLAGS=”-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk”
CXXFLAGS=”-arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk”
make
如果没什么问题,编译通过之后就基本成功了。
第六步,打包app。在终端中执行./src/utils/scripts/mac_packager,结束后在amule-cvs中应该可以看到最终完成的bundle了,静态链接的程序大概有65MB。。。。
呵呵,本人并非专业人士,缺乏理论素养,花了很长时间才完成。希望大家能指正本文中的错误,本人感激不尽。最后谢谢jjgod大仙,呵呵,也推荐大家去看看jjgod的blog,真的受益非浅。
macports在Leopard下编译universal的一个问题
http://blog.jjgod.org/2007/12/03/macports-leopard-universal-issue/
December 3rd, 2007 by jjgod
近来在开发一个小软件,需要分发程序链接了一些用 macports 安装的库,众所周知,用 macports 安装 universal binary 程序是通过 +universal 这个缺省 variant 实现的。在默认情况下,显然用户不愿意安装 universal 的,既然都在自己机器上编译了,去编译其他平台的二进制程序即浪费时间又浪费空间。所以默认这个 variant 是禁用的,可是如果你自己开发的 Universal Binary 应用要链接用 macports 安装的那些库时,就必须首先确保这些库是 universal binary。
可是在 10.5 下通过 +universal 之后,链接程序会遇到类似下面的错误:
$ sudo port install gettext +universal
…
—> Building gettext with target all
Error: Target org.macports.build returned: … returned error 2
…
gcc -dynamiclib -o … -L/opt/local/lib -lc
-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386
-arch ppc -arch i386 -arch ppc -Wl,-framework -Wl,CoreFoundation
-install_name /opt/local/lib/libintl.8.dylib
-compatibility_version 9 -current_version 9.2
ld: library not found for -ldylib1.10.5.o
collect2: ld returned 1 exit status
…
这是什么原因呢?仔细看最关键的地方在于,macports 缺省使用了 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc 这个编译器参数来生成,可是在 Mac OS X 10.5 下,如果仅仅使用这个参数,系统仍然会以为你要编译的是 10.5 下运行的程序,所以最后会尝试链接 10.5 的 libc,问题是 10.5 的 libc 在 10.4 的 SDK 路径下当然找不到,于是就出错了。参考 Xcode-Users 上的讨论(http://lists.apple.com/archives/Xcode-users/2007/Oct/msg00686.html)。
怎么解决呢?也简单,加上 -mmacosx-version-min=10.4 这个编译参数就行了。不过对于 macports 来说,在哪儿加倒是一个问题,你可以针对每个 port,在 Portfile 里加上:
configure.universal_cflags-append "-mmacosx-version-min=10.4"
也可以一劳永逸地通过修改 /opt/local/share/macports/Tcl/port1.0/portconfigure.tcl 脚本中的 default configure.universal_cflags 实现,这里是一个简单的 patch(http://trac.macosforge.org/projects/macports/attachment/ticket/13475/portconfigure.t cl.diff)。
这个 patch 已经发到了 macports 的 trac 上,希望能尽快在官方版本中得到修复。
/*
这个问题上次我试图编译aMule CVS Universal Binary的时候就发现了,呵呵。这次要把常用的开发工具全部搞成Universal Binary的。其实Universal Binary这个东东就和Classical一样,总是对一半人有用,一半人没用,但是对于开发者就比较痛苦了。要么准备两套开发平台,要么从头开始把各种libs和tools全部搞成Universal Binary。在x86平台上编译PowerPC构架部分真是慢。。。。