Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как создать массив большого размера https://www.cyberforum.ru/ cpp-beginners/ thread1249769.html
В программе будет использоваться массив большого размера. Оперативная память - 512 МБ Создаю массив: char lol; Выдает ошибку : 'Необработанное исключение типа "System.StackOverflowException"...
C++ Кроссплатформенная C++ библиотека для построения чартов
Всем привет! Очень буду благодарен всем, кто посоветует кросс-платформенную библиотеку для построения чартов программно с использованием C++. Ранее чарты строились только под Windows с...
C++ Анимация полета по кривой, как реализовать? https://www.cyberforum.ru/ cpp-beginners/ thread1249739.html
Правильно ли я мыслю: есть допустим башня с радиусом стрельбы R, просчитать попал ли в враг в зону атаки, нужно по катетам треугольника? Или есть какой-то другой алгоритм? А как вот определить...
C++ Шаблон функции с параметрами по умолчанию https://www.cyberforum.ru/ cpp-beginners/ thread1249711.html
Можно ли создать такую конструкцию? Если да, можно увидеть пример?
Почему переменная типа bool весит 1 байт? C++
Всем доброго времени суток! Не подскажете, почему булеан весит 1 байт если он имеет всего два значения 0 и 1, следовательно он должен весить 1 бит.
C++ Текстовый файл читать построчно Помогите новичку! Не могу проделать вроде простую (для других языков) процедуру: Перебрать строки текстового файла и обработать перед выводом каждую строку отдельно не зависимо от длины. Ни... https://www.cyberforum.ru/ cpp-beginners/ thread1249678.html
C++ Задать размер динамического массива через переменную, обявленную как extern Привет народ, скажите, почему не компилирует: #include"stdafx.h" #include"iostream" using namespace std; extern const int y; int main(){ int e; system("pause"); return 0; } https://www.cyberforum.ru/ cpp-beginners/ thread1249666.html Шаблоны. Ошибка компиляции: "Не удается сопоставить определение функции существующему объявлению" C++
vector.h #pragma once #ifndef _VECTOR_H #define _VECTOR_H #include <exception> template<typename T> class vector {
C++ Как зациклить ввод пока не будет введено одно из обрабатываемых значений? https://www.cyberforum.ru/ cpp-beginners/ thread1249637.html
Как сделать что бы если else (введено не 1 или 2) вывело текст "неправильный выбор" и начало цикл заново? for (int i = 0; i < 1; i++) { if (input == 1) { Car1 car; cout << "Вы...
C++ В классе инициализировать массив, в классе создать функцию вывода массива на экран https://www.cyberforum.ru/ cpp-beginners/ thread1249635.html
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать функцию вывода массива на экран. Прошу подсказать ГДЕ В ЛОГИКЕ...
Как правильно записывать условные операторы и как прервать проверку при достижении результата? C++
доброго времени суток форумчане, подскажите пожалуйста как остановить условие после правильно выполненного условия.#include "stdafx.h" #include <iostream> using namespace std; int main() {...
C++ Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных https://www.cyberforum.ru/ cpp-beginners/ thread1249623.html
Что за предупреждение вылезает? Как исправить? (16 строка): warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных #include <iostream> using namespace std;...
677 / 292 / 100
Регистрация: 04.07.2014
Сообщений: 828
01.09.2014, 14:12 0

Правильная организация файлов проекта, CMake - C++ - Ответ 6567730

01.09.2014, 14:12. Показов 3818. Ответов 1
Метки (Все метки)

Ответ

Я больше привык, что cpp и hpp лежат в одном месте. Это позволяет проще оперировать с этими файлами, в том числе и некоторые IDE предполагают, что парные файлы лежат вместе и позволяют переключаться между ними. А в отдельный include публичные заголовочные файлы могут попасть и при установке (install).

Так или иначе, при формировании проекта могут понадобиться дополнительные скрипты CMake. Например активация С++11 или отображения всех ошибок. Эти дополнительные файлы складываю в /cmake или /utils/cmake.
После чего они используются в главном CMakeFile:
Bash
1
2
3
4
5
6
7
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/utils/cmake")
 
# Enable Warning All
include(EnableWarningAll)
 
# Enable C++11
include(CheckCXX11Features)
Если проект разбивается на несколько частей, то лучше разложить их по директориям. Например /libSecret /projets/SecretDemo и в каждой директории создать CMakeFile импортируемые из директории уровнем выше

Bash
1
2
3
4
5
# /CMakeLists.txt
cmake_minimum_required(VERSION 2.8.11)
project(egegWorkspace CXX)
add_subdirectory(libSecret)
add_subdirectory(SecretDemo)
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# /libSecret/CMakeLists.txt
set(LIB_SECRET_HEADERS_PUBLIC
    "secretStorage.hpp"
)
 
set(LIB_SECRET_HEADERS_PRIVATE
    "secretStoragePrivate.hpp"
)
 
set(LIB_SECRET_SOURCES
    "secretStorage.cpp"
    "secretStoragePrivate.cpp"
)
 
add_library(libSecret SHARED ${LIB_SECRET_SOURCES} ${LIB_SECRET_HEADERS_PUBLIC} ${LIB_SECRET_HEADERS_PRIVATE})
Bash
1
2
3
#SecretDemo/CMakeLists.txt
add_executable(SecretDemo "SecretDemo.cpp")
target_link_libraries(SecretDemo libSecret)
Если надо добавить для компилируемой программы/библиотеки дополнительные include, то
Bash
1
set_property(TARGET SuperPuperSecterProgram PROPERTY INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS})


Вернуться к обсуждению:
Правильная организация файлов проекта, CMake C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.09.2014, 14:12
Готовые ответы и решения:

Правильная организация cmake проекта
Вопрос от веб разработчика избалованного грейдлами и мавенами по правильной организации структуры...

Организация проекта с cmake
Доброго времени суток,помогите разобраться с вопросом:как правильно организовать проект с...

Ошибка генерации CodeBlocks проекта CMake`ом
Пожалуйста, подскажите как правильно сгенерировать CodeBlocks проект с CMake`ом. Опишу по шагам что...

CMake и организация сборки проекта
В общем, вопрос таков: каким образом можно &quot;наставить&quot; cmake, чтобы он собирал бинарники в одной...

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.09.2014, 14:12

Правильная организация проекта?
Здравствуйте, расскажите пожалуйста как, как правильно организовать свой проект(Qt - C++): 1. Все...

Создание проекта в cmake для с и с++ файлов
Доброго времени суток. Есть вопрос. У меня с++ проект собирается с помощью cmake. Возникла...

Сборка проекта cmake с вложенными cmake
Всем привет. Подскажите пожалуйста вот у меня есть проектный файл и в нем мне надо как то обьявить...

Организация рабочего процесса и CMake
Здравствуйте я решил использовать cmake при написании лабораторных работ Подскажите: 1)...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru