я использую драгоценный камень это не скомпилируется в Ubuntu из-за того, что появляются настройки защиты компилятора.
Если я клонирую репозиторий драгоценного камня и изменю Makefile, чтобы добавить CPPFLAG из -Wno-format-security
тогда это просто компилируется.
Моя проблема в том, что когда я пытаюсь установить этот драгоценный камень с gem install ztx-0.0.1.gem
он пытается снова скомпилировать гем, но каким-то образом игнорирует флаги CPP, указанные в Makefile. (Я предполагаю, что это происходит, потому что я получаю те же ошибки, что и до добавления -Wno-format-security
флаг).
Я пытался экспортировать CPPFLAGS перед вызовом gem install...
но с такими же результатами.
Итак, мой вопрос, как я могу заставить эти флаги CPP, чтобы я мог скомпилировать этот драгоценный камень?
Я нашел решение своей проблемы, хотя решение не является прямым ответом на этот вопрос.
Я хотел отключить ошибки компилятора, вызванные настройками защиты компилятора в Ubuntu. Как отметил @Jesper в комментариях, это не может быть мудрой идеей.
Но я хотел знать, почему это не работает. Отлично скомпилировано на MacOS. Затем я заметил, что большинство ошибок были в файле с именем tx_swig_wrap.cxx
,
Я очень мало знаю о Swig, но я немного новичок в том, что он позволяет вызывать некоторый код на c / c ++ из ruby, python и т. Д.
Именно тогда я понял, что, возможно, этот файл-обертка был сгенерирован swig и что ошибки, которые я получал, могли быть исправлены более новой версией swig.
Файл обертки имеет раздел комментариев вверху, в котором сообщается о версии Swig, которая его создала. Это был 1.X, а последняя версия — v3.X.
Я установил swig и узнал, что могу восстановить оболочку, выполнив swig -c++ -ruby tx_swig.i
,
Я так и сделал, и с новым сгенерированным файлом гем скомпилирован без проблем.
Других решений пока нет …