2012-11-22 44 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感到抱歉。它已被添加。 –