Нет такого файла или каталога «ruby / config.h» при попытке скомпилировать C ++ в Ruby с помощью SWIG

0

Я пытаюсь получить базовый пример с использованием SWIG для преобразования файла C++ в Ruby. У меня установлен Ruby 2.0.0p451 (64-разрядная версия), и я также установил 64-разрядный DevKit. Я запускаю Windows 7 и пытаюсь использовать swigwin-2.0.12. Наконец, я использую компилятор GCC C++, поставляемый Mingw-builds для 64-разрядной версии Windows.

У меня есть базовая программа 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

Ошибка, которую я получаю:

Изображение 174551

Все проведенные мной исследования указали мне на установку неправильного DevKit, но я не думаю, что это моя проблема. Я обязательно загрузил 64-битную версию Ruby и DevKit. Я проверил папку, указанную в ошибке, и файл config.h отсутствует. Я не уверен, почему файл config.h не существует или почему ruby.h пытается его загрузить.

Есть предположения?

Теги:
swig

1 ответ

1

Убедитесь, что существует 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 независимых заголовков и один для платформы.

  • 1
    Я установил Ruby из программы установки и заметил, что файл config.h не находится в каталоге «C: \ Ruby200-x64 \ include \ ruby-2.0.0 \ ruby». Файл config.h находится в "C: \ Ruby200-x64 \ include \ ruby-2.0.0 \ x64-mingw32 \ ruby \". Однако я не думаю, что лучше всего перемещать файлы в файловой структуре Ruby. Я запутался, почему собственный файл ruby.h в Ruby не может найти правильный путь к файлу config.h для начала.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню