В NetBeans переменные среды для C++ файл Makefile
у меня есть простой makefile, который вызывает компилятор C++ как $(CXX)
, который установлен в my ~/.profile
сценарий. Netbeans, похоже, имеет сложный менеджер цепочек инструментов, но, похоже, решает $CXX
Как только c++
несмотря ни на что.
как я могу установить $CXX
правильно, или есть другая переменная, установленная Netbeans, которую может обнаружить мой makefile? (фу)
Edit: щелчок правой кнопкой мыши по makefile в навигаторе позволяет мне указать среду, хотя кажется, что место только для одной строки ввода. Указание CXX=/usr/local/bin/g++
устраняет проблему, но это далеко не оптимально.
3 ответов
Я просто опишу, что я обычно делаю, когда работаю с C++ в NetBeans. Сначала для каждого проекта Я создаю простой файл makefile следующим образом:
MAIN = <my main target>
CFLAGS = -g -std=c++0x
include ${MAKELIBHOME}/MINGW32.inc
include ${MAKELIBHOME}/WINDOWS.inc
build: ${MAIN}
clean:; rm -fr <files to remove>
переменная среды MAKELIBHOME устанавливается вне NetBeans. Каталог ${MAKELIBHOME} содержит ряд включаемые файлы для make, например, файл MINGW32.inc выглядит так:
CC = g++
CFLAGS += -W -DLITTLE_ENDIAN=1
LDLIBS += -lws2_32
.SUFFIXES: .o .c .cpp
.c: ;${CC} ${CFLAGS} ${LDFLAGS} $< -o latest ${LDLIBS}
.cpp: ;${CC} ${CFLAGS} ${LDFLAGS} $< -o latest ${LDLIBS}
.c.o: ;${CC} ${CFLAGS} -c $<
.cpp.o: ;${CC} ${CFLAGS} -c $<
эти inc-файлы одинаковы для всех проектов NetBeans. Здесь нет абсолютных путей , таким образом, make будет использовать переменную PATH для поиска набора инструментов GCC, но, конечно, вы можете использовать абсолютные пути для выбора набора инструментов, который вам нравится (или включить другой inc-файл - я бы предпочел этот способ).
все это работает на моей машине Windows, но конфигурация Linux выглядит очень похожей - мне просто нужно включить другой набор inc-файлов во все мои основные файлы Makefile. Кроме того, эта настройка позволяет мне вызывать make из командной строки.
надеюсь, это поможет, ~АУ
Это старый пост. Однако недавно я нашел ту же проблему, и я нашел альтернативу, основанную на ответе @HEKTO.
Я использую PETSc, библиотеку для решения больших разреженных матричных систем. Их система сборки требует, чтобы вы использовали "include" в вашем makefile, который зависит от двух переменных среды: PETSC_DIR и PETSC_ARCH, которые должны быть установлены в вашей среде.... или вы можете передать их в качестве параметров для вашей команды!! вот что я сделал.
Я взял файл makefile генерируется NetBeans, и в самом конце я добавил свой include:
include ${PETSC_DIR}/conf/variables
обратите внимание, как это зависит от определения PETSC_DIR. Кроме этого включать массово использует это и PETSC_ARCH повсюду.
Итак, в NetBeans теперь я настраиваю его для передачи этих переменных, чтобы сделать: Tools - >Options: на вкладке " Параметры проекта "я заполняю текстовое поле для" Make Options " следующим образом: PETSC_DIR=/path/to/petsc PETSC_ARCH=some-arch
кроме того, теперь вы можете начать использовать эти переменные среды (и другие, определенные в ${PETSC_DIR}/conf/variables в параметрах проекта. Например, для моих файлов включения я делаю (щелкните правой кнопкой мыши на проекте, затем " Свойства"): В разделе "компилятор C", "включить каталоги" я ставлю: ${PETSC_DIR}/include
и в разделе "Компоновщик", "библиотеки" я ставлю: ${PETSC_LIB} (определенный в файле include выше).
теперь я могу создавать и запускать свой проект из NetBeans. Если моя версия PETSc изменяется, мне нужно только изменить определение переменных, переданных для создания, и все остальное решается.
Я надеюсь, что это может помочь кому-то. Это определенно сработало для меня. И хорошая часть заключается в том, что я могу дать свой код другим людям, и они могут компилироваться из командной строки, используя "make" как обычно (без NetBeans) и определяя вышеуказанные переменные среды. Сборник теперь не имеет жестко закодированные пути.
У меня была очень похожая проблема в linux, где Netbeans не захватили переменные среды из bash.
решение: запустите netbeans из bash.
Я не уверен, что эквивалент на Mac, но идея проста: запустите Netbeans с терминала, у которого уже установлены правильные переменные среды.