CMake - Code :: Blocks - привет, мир - простой пример

Где я могу найти руководство по созданию простого проекта CMake Hello World для загрузки в CMake?

платформа: Lenovo 32bit Linux Kubuntu

1) Я бы использовал репозиторий git:

./git/CMakeLists.txt
./git/code/CMakeLists.txt
./git/code/hello-world.c

где файлы содержат очевидное содержимое

2) Я бы запустил cmake

- pointing the source to the git repo indicated in 1
- configuring the repo
- generating the code-blocs-project (cbp) file in ./build

3) поэтому я могу просто щелкнуть

- the cbp link in ./build
- compile the project in c::b and run a 
- very basic console program spitting out, you guessed it: "Hello stack overflowers!"

person hewi    schedule 01.04.2015    source источник
comment
Пункт 2 правильный, пункт 3 - это просто вопрос написания программы. Проблема только в пункте 1: поэтому вам нужно знать, как написать проект cmake, который позволяет вам создавать некоторые исполняемые файлы и библиотеки из ваших исходных файлов, чтобы из них вы могли сгенерировать проект кодового блока, а затем построить и запустить свой проект. внутри кодового блока. Итак, теперь вы знаете, что искать: хороший учебник по cmake.   -  person Antonio    schedule 02.04.2015
comment
Проблема в том, что ни одно из руководств по cmake не является простым и включает идею структуры папок, большое спасибо Фрейзеру за прекрасный пример!   -  person hewi    schedule 02.04.2015
comment
Вы должны принять отличный ответ Фрейзера Howto   -  person Antonio    schedule 02.04.2015
comment
Антонио: спасибо, что указали на это   -  person hewi    schedule 02.04.2015


Ответы (1)


Итак, просто чтобы подтвердить очевидное содержание файлов; вот что у меня есть:

~/devel/example $ tree .
.
├── build
└── git
    ├── CMakeLists.txt
    └── code
        ├── CMakeLists.txt
        └── hello-world.c

3 directories, 3 files

~/devel/example $ cat git/CMakeLists.txt 
cmake_minimum_required(VERSION 3.0)
project(Hello)
add_subdirectory(code)

~/devel/example $ cat git/code/CMakeLists.txt 
add_executable(hello hello-world.c)

~/devel/example $ cat git/code/hello-world.c 
#include <stdio.h>

int main() {
  printf("Hello stack overflowers!\n");
  return 0;
}

Теперь, чтобы запустить CMake, я сделал:

~/devel/example $ cd build/
~/devel/example/build $ cmake ../git -G"CodeBlocks - Unix Makefiles"
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/fraser/devel/example/build
~/devel/example/build $ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  code  Hello.cbp  Makefile

который, как вы можете видеть, привел к созданию файла проекта CodeBlocks (Hello.cbp)

Если вы сейчас откроете этот проект в CodeBlocks (дважды щелкните файл проекта), вы должны увидеть проект Hello на левой панели.

По умолчанию выбрана цель «все». Он должен появиться в раскрывающемся списке на панели инструментов компилятора в верхней части графического интерфейса. Это создает все цели, указанные в проекте, но не то, что вы можете запустить - вы можете только построить его.

Имя исполняемого целевого файла - "hello", как указано в коде CMake add_executable(hello hello-world.c). Чтобы запустить исполняемый файл, выберите «hello» в раскрывающемся списке, упомянутом ранее, а затем нажмите значок «Build and run» на той же панели инструментов.

person Fraser    schedule 01.04.2015
comment
Ура :-) Я помню, как когда-то боролся с основами, и это не так уж и весело! Вы просто хотите перейти к той части, где вы пишете код, а не возиться с настройкой. - person Fraser; 02.04.2015