簡體   English   中英

嘗試使用SWIG將C ++編譯為Ruby時,沒有這樣的文件或目錄“ ruby​​ / config.h”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM