2012-11-22 42 views
0

我正在使用StarRuby(https://github.com/hajimehoshi/starruby)库,并试图将最新版本编译为.so文件,以便在我的ruby项目中进行链接。在Windows上编译C99兼容.so

但是,在获取所需的库进行编译并运行extconf.rb文件以生成Makefile后,我发现C代码不符合C90格式,并且比需要C99格式更多。

这是一个问题,因为mingw不使用C99,而且我被困在Windows上。

如何将上面的源代码编译到.so中以便在Windows上使用ruby?

生成文件:http://pastebin.com/raw.php?i=i2ANc82g
生成文件的确切输出可以在这里找到:http://pastebin.com/raw.php?i=VpbmyLgy
由于回滚到libpng的1.2:http://pastebin.com/raw.php?i=TqdeADHY

+0

灿你用'V = 1'运行make,这样我们就可以看到编译器命令行使用了什么? –

+0

你有很多关于混合声明和代码的警告,但是我看到的唯一的错误是'./src/texture.c:329:18:错误:取消指向不完整类型的指针(以及稍后的一些行)。那条线上有什么? –

+0

@MichaelBurr:当尝试设置一些冗长时它输出相同的东西。 –

回答

1

此行添加到您的Makefile:

$CFLAGS += " -std=c99" 
+0

这已经是makefile中的参数之一,我对原始问题中没有包含实际的makefile感到抱歉。它已被添加。 –