Цитата(Ixt @ Oct 8 2013, 23:35)

Угу. Если у нас несколько вариантов сборки, то можно собирать и релиз с отладочной информацией (что кстати тот же cmake позволяет делать). Но, вообще, оптимизация может мешать отладке и даже быть причиной некоторых малопонятных сбоев (опции из -O3). Поэтому всегда лучше иметь сборку с "-g -O0", в которой полностью уверен.
Я до этого писал для 16-битных камушков в BSO Tasking, Keil, MikroC, MPLAB. Везде приходил к тому что надо отключать оптимизацию. Тут видимо похожая ситуация. Приму к сведению.
Цитата(Ixt @ Oct 8 2013, 19:54)

А вообще лучше не редактировать автоматически сгенерированные файлы.
Ясно. Сmake отдельно, Эклипс - отдельно.
Вопросы.
1. Сгенерил makefile с помощью команды cmake -DCMAKE_BUILD_TYPE=Debug . Затем полученным makefile собрал программку. Она (програмка) запускается без проблем из консоли. Это вообще нормально, что она может стартовать не из под дебуггера, а как будто я её в релизе собрал?
2. На базе этого же Makefile-проекта решил создать проект в Эклипсе и запустить его в релизе и в дебуггере. Делал так.
1. Создал папку проекта Project
2. В папке Project создал папки src (исходники .с ) incl (заголовки .h) build (файлы сборки проекта CMakeLists.txt, MakeFile, исполняемый файл и пр. СMakexxxxx файлы)
3. Импортировал соответствующие файлы из makefile-проекта в соответствующие папки.
4. В текстовом редакторе Эклипса поправил пути в импортированном CMakeLists.txt файле и запустил cmake из командной строки.
5. В Эклипсе иду Project --> Properties --> Builders. Там отключаю встроенный в Эклипс сборщик. и создаю свой (New). Для своего сборщика указываю путь к мэйку Убунты, а в "Working Directory" указываю путь до мною сгенерированного makefile (до папки build проекта)
6. Всё. Жму Cntrl+B, ошибок нет, исполняемый файл генерится.
Всё хорошо, но когда запускаю Run получаю сообщение Эклипса : The selection cannot be launched. and thare are no recent launches. При повторном нажатии Run, появляется: Launch failed. Binary not found. Это же сообщение появляется при запуске дебуггера (кнопка F11) Чо ей надо ?
В CmakeFile.txt у меня применены следующие опции компилятора:
Код
set( CMAKE_C_FLAGS_DEBUG "-O0 -Wall -pedantic" )
set( CMAKE_C_FLAGS "-O0 -Wall -pedantic" )
Спасибо.
PS Вот еще вопрос. Настройки своего билдера я устанавливаю в Project->Properties->Builders. А есть еще настройки билдера в Project->Properties->С/С++ Build->закладка Build Settings. Зачем они сделали одни и те же настройки в двух местах ? Мне и там и там надо тоже самое выставлять (путь до make и путь до makefile) ?
Сообщение отредактировал berkl - Oct 9 2013, 11:47