Привет всем!
Собираю приложение из нескольких модулей при помощи cmake. Чтобы из файлового менеджера в иксах бинарник «запускался» кликом мышки, указываю для «CMAKE_CXX_FLAGS» одним из параметров "-no-pie". При сборке GCC проблем нет. Но тут захотелось нового...
Пытаюсь собрать clang-ом с параметром "-fno-PIE", все модули выдают ошибку:
/usr/bin/ld: CMakeFiles/appdbg_clang.dir/src/io.cpp.o: перемещение R_X86_64_32 для «.rodata.str1.1» не может использоваться при создании объект PIE; recompile with -fPIE
и результирующий файл не собирается. А без "-fno-PIE" файл собирается как исполняемый, но не кликабельный из иксов.
Кто имеет опыт работы со «шлангом», подскажите, что почитать?
---
РЕШЕНИЕ: использовать в CMakefile.txt не «CMAKE_CXX_FLAGS», а опцию:
SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -no-pie" )
Рабочий пример кода можно посмотреть тут: https://github.com/bigov/daft-lib/tree/master/gui_samples/gtkmm