[英]No such file or directory “ruby/config.h” when trying to compile C++ into Ruby using SWIG
我試圖獲得一個使用SWIG將C ++文件轉換為Ruby的基本示例。 我安裝了Ruby 2.0.0p451(64位版本),並且還安裝了64位DevKit。 我正在運行Windows 7,並嘗試使用swigwin-2.0.12。 最后,我使用的是Mingw-builds提供的GCC C ++編譯器,用於Windows 64位版本。
我有基本的C ++ hello world程序,如下所示。
#include <iostream>
#include <cstdlib>
using namespace std;
main()
{
cout << "Hello World!";
system("pause");
return 0;
}
在命令提示符處,我使用以下命令:
swig -module -c++ -ruby hello_world.cpp
這樣就可以完成並生成一個名為hello_world_wrap.cxx的文件。 但是,當我嘗試使用以下命令編譯.cxx文件時收到錯誤消息:
g++ -fPIC -c hello_world_wrap.cxx -IC:\Ruby200-x64\include\ruby-2.0.0
我收到的錯誤是:
我所做的所有研究都指出我安裝了錯誤的DevKit,但我認為這不是我的問題。 我已經確保下載Ruby和DevKit的64位版本。 我已經檢查了錯誤中指定的文件夾,並且沒有config.h文件。 我不確定為什么config.h文件不存在或為什么ruby.h試圖加載它。
有什么想法嗎?
檢查C:\\Ruby200-x64\\include\\ruby-2.0.0\\ruby\\config.h
存在。 如果沒有,找到並修復路徑。
更新:
檢查同一文件夾中是否有ruby.h。 如果存在,則只需使用-IC:\\Ruby200-x64\\include\\ruby-2.0.0\\ruby\\x64-mingw
。 否則,嘗試為該額外路徑添加第二個-I。 我同意您的觀點,這有點奇怪(前者不是那么多,但是如果您必須有兩個-I,則肯定是這樣)。 https://groups.google.com/forum/m/#!topic/comp.lang.ruby/RpjuvXpFI30上的腳本表明這可能是正常的,即對於平台無關的標頭您需要一個-I,對於平台需要一個-I依賴性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.