Netbeans 26 C++ (clang/clangd) + build system
Всем привет. Стал нужен IDE минимальный, и я вспомнил, есть Нетбинс. Скачал, мне он очень понравился - удобный, но чего-то не хватает.
Как сделать рабочим Нетбинс 26, когда какой-то модуль, который раньше в плагинах работал теперь не работает. Давайте рассмотрим этот нюанс.
Вопрос интересный, давайте рассмотрим
Пользуюсь системой FreeBSD14.2 Netbeans26 -версии скачан в zip, clang++20, clangd20.
Первое что я сделал выставил настройку на clangd20 исполнение
Нам доступно в такой конфигурации без модуля создание проекта ligthweight C++, его тоже поставил
выставил галочку на поддержку C++
далее так как я пользуюсь OS FreeBSD
создал файл .clangd в корневом разделе проекта
CompileFlags:
Add: [ -I/usr/local/include ]
ссылка на описание ситуации https://clangd.llvm.org/config
и далее так как я пользуюсь самодельной билд системой по-сути скриптом, добавил этот скрипт в соответствующие поля
name="testapp"
#
cmp="clang++20"
#
flags="-std=c++26 " #-O3 -ffast-math
#
dirsmath="math"
dirswin="commons"
dirsshader="shader"
dirscamera="camera"
dirssysbufs="sysbuffers"
#
files="main.cpp \
$dirswin/OpenglWindow.cpp \
OpenglTest.cpp \
$dirsmath/wtm.cpp \
$dirsshader/shader.cpp \
$dirscamera/camera.cpp"
dirObjs="Objs"
#
poss="-I/usr/local/include"
possl="-L/usr/local/lib"
#main.cpp commons/OpenglWindow.cpp OpenglTest.cpp shader/shader.cpp math/wtm.cpp camera/camera.cpp
link="-DGLEW_STATIC -ldl -lGL -lGLEW -lglfw -lm -lz -DSHM -lassimp -lpthread -lX11 -lXxf86vm -lXrandr -lXi"
#
command_string="$cmp $flags -c $files $poss $link;"
command_string1="$cmp $flags $dirObjs/*.o -o testapp $poss $possl $link;"
#
erasefile (){
echo ""
echo "delete $name"; rm $name; rm $dirObjs/*.o;
}
compilecheck () {
echo ""
echo "compilation start"
echo ""
echo "$command_string"
echo ""
echo "$command_string1"
echo ""
for src in $files; do
obj="${src%.cpp}.o"
obj1=$dirObjs/"${obj##*/}"
echo "compiling $src to $obj1"
"$cmp" $flags -c "$src" -o $obj1 $poss
done
echo "compilation end with "$?
echo ""
echo "linking $command_string1"
eval "$command_string1"
echo "compilation end with "$?
echo ""
echo "start $name";./$name
echo ""
echo "application end with "$?
echo ""
}
if test -e $name; then
erasefile
compilecheck
else
compilecheck
fi
сам скрипт, суть скрипта проста - указываем окружение - директории и файлы, указываем директорию для обьектников, создаём директорию для обьектников, и всё должно сработать как должно быть в скрипте по его логике, скрипт простенький его можно настраивать под свои нужды, хорошая альтернатива cmake ) на мой взгляд.
Далее прописал compile_flags.txt в интерфейсе в Нетбинс
файл compile_flags.txt находится в корневой директории проекта
-I/usr/local/include
-std=c++26
-Wall
-O3 -ffast-math
после этих действий я вижу, автодополнение и в консольке не скучную сборку в Нетбинсе26.
теперь Нетбинс настроен, но как настроить дебаг пока не понял.