Почти ничего не зная о ruby или системе сборки, похоже, вы захотите изменить это на следующее:
require 'mkmf'
system('swig -c++ -ruby example.i') or abort
$CXXFLAGS += " -I/usr/local/gr/include "
$LDFLAGS += " -L/usr/local/gr/lib -lGR -lm -rpath,/usr/local/gr/lib "
create_makefile('example')
Поскольку обычно системы сборки разделяют компиляцию и связывание на две отдельные фазы, флаги компиляции поступают из переменных с именем CCFLAGS
/ CXXFLAGS
(для компиляторов C и C ++ соответственно) и флаги компоновщика, поступающие из LDFLAGS
по соглашению.
Сообщение об ошибке, которое вы видите из clang, указывает на то, что он вызывается как компилятор и сообщает вам, что при простой компиляции (а не компоновке) он игнорирует дополнительные опции, которые вы ему дали, которые относятся только к компоновке.
Вам может или не нужно удалять часть аргумента -Wl
, как я это сделал здесь - решение для этого зависит от того, вызываете ли вы компоновщик (/ usr / bin / ld обычно) напрямую, или используя clang / gcc в качестве компоновщика.