Делаю первые шаги в программировании на Linux. Хочу попробовать написать простейшую программку.
С помощью Yast установил KDevelop, а также на всякий случай gcc, gcc-c++.
В KDevelop создал проект из шаблона Standart - Terminal. Образовался файл main.cpp с простейшим кодом Hello World.
Не могу разобраться, как его скомпилировать, как подключить gcc-c++ к KDevelop?
“Выполнение” - “Запустить”
Shift-F9
Немного разобрался. Оказывается, забыл установить gcc и cmake.
Теперь новая проблема. Не получается собрать проект с потоком.
/home/evg/projects/chess2/build> make -j1 -lpthread
– Configuring done
– Generating done
– Build files have been written to: /home/evg/projects/chess2/build
50%] Linking CXX executable chess2
CMakeFiles/chess2.dir/main.cpp.o: In functionstd::thread::thread<void (&)()>(void (&)())': /usr/include/c++/7/thread:122: undefined reference to
pthread_create’
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/chess2.dir/build.make:95: chess2] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/chess2.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
*** Ошибка: Код выхода: 2 ***
Как подключить библиотеку thread?
make -j1 -lpthread
у make нет такого аргумента
опции линковки нужно указывать внутри Makefile
обычно там есть переменная *LIBS вот в неё и надо добавить -lptheads
например:
ALSA_LIBS = -lasound -lm -ldl -lpthread