Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49511
  • 博文数量: 19
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 215
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-08 11:40
文章分类

全部博文(19)

文章存档

2011年(1)

2009年(18)

我的朋友
最近访客

分类: WINDOWS

2009-04-29 17:43:34

昨天下午,我在搞javascript v8的时候,发现,它是用scons构建的。
在我自己scons helloworld.c的时候,却发现有LNK1104 没法链接kernel32.lib的问题。
(注意:我的环境是winxp,visual studio 2008 express,微软的东西就是麻烦)
在网上,无论怎么找都没找着。今天早上,我看了一下scons guide,原来是一个很简单的问题,lib没找着,不过,你要会在scons中添加才行。
对于代码:
C代码
  1. int  
  2. main()  
  3. {  
  4.     printf("Hello, world!\n");  
  5. }  

你可以把SConstruct定义成:
Python代码
  1. ms_libpath=[  
  2.             'C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\lib',  
  3.             'C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\LIB']  
  4. DefaultEnvironment(LIBPATH=ms_libpath)  
  5. Program('helloworld.c')  

这样,就没有那个错误了。实际上,主要问题还是scons出错了,它的构建环境对象的lib不准确,win32sdk好象是在msvs/platform什么的,这不对,位置如上。

用scons构建真的很方便和容易理解。构建这样的任务对于python这样的语言非常的合适。
相应的语言应该做相应的事。不要指望用一种语言,做所有的事情(我原来曾经有这样的想法)。

scons的文档我大概的读了一下。很清晰,我相信scons在构建领域,将来会是默认的选择。
不过,对于java体系的构建不如ant,我发现它只关注与构建,而不是运行。当然了,可以多加几个关于java的builder之类的补充,这都没有问题,只是现在对于java的支持还不够强劲。

从理论上讲,scons没有做不了的事,它是python,是可运行的代码,这比ant的xml强多了,想干什么用代码直接写,不是很爽的事吗?!

[转载自]http://wenjixiao.javaeye.com/blog/236842
阅读(1024) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~