Бортовой журнал Ктулху

Как в Clion собирать проект в исполняемый файл вместо разделяемой библиотеки

В процессе работы над своим первым проектом в Clion столкнулся с одним неудобством при сборке проекта. Программа после компиляции не запускалась по клику, выводилось сообщение "Для файлов типа 'Разделяемая библиотека' не установлено ни одного...", при этом, через командную строку приложение запускалось.

То есть, при компиляции тип файла устанавливался как "shared library", т.е., "разделяемая библиотека" и что-то с этим нужно делать.

 



 

clion error saherelib 1

Просмотр информации в командной строке:

$ file simpleGTKap simpleGTKap: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, uildID[sha1]=2e71d13481674b33ec94a419ca020b513fb8499a, not stripped

Как мне удалось выснить, что проблема решается добавлением флага компилятору -no-pie.

Теперь, в Clion открываем файл CMakeList.txt и добавляем в него такие строки:

 

SET(GCC_COVERAGE_COMPILE_FLAGS "-no-pie")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
${GCC_COVERAGE_COMPILE_FLAGS}")

 

Собираем заново проект и проверяем скомпилированный файл:

$ file simpleGTKap simpleGTKap: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 3.2.0, BuildID[sha1]=f4f977af30baed37ab4663c6f436b11cb2e67858, not stripped

clion compiled executable 1

После этого программа запускается по мышиному щелчку.