Расположение каталога проекта Linux C ++ - CMake - PullRequest
7 голосов
/ 22 марта 2011

Я хотел бы использовать стандартную компоновку для моего проекта Linux C ++, который построен с использованием cmake и содержит некоторые исполняемые файлы и библиотеку, на которую эти execs могут ссылаться. В настоящее время у меня просто была папка для проекта и подпапка для каждого подпроекта. С CMakeLists на верхнем уровне и по одному на каждом подуровне, который добавляет уровень opt.

 Project-
            executable1
            executable2
            library

Тем не менее, я думаю, что было бы лучше настроить, как показано ниже

Project -
    lib //Library output folder
    bin //Executable output folder
    src //Al cpp source files
    include //All header files
    test //All tests

У меня будет только один CMakeLists на верхнем уровне. Я могу легко настроить это в cmake. у кого-нибудь есть причины выбрать другой макет?

Ответы [ 2 ]

7 голосов
/ 22 марта 2011

Я бы не помещал выходные данные lib, bin и test непосредственно в каталог проекта: если вы хотите сделать отладку и сборку релиза, вы застряли, потому что у вас есть только один заполнитель. Из исходников сборки твой друг! Я бы использовал что-то вроде:

Project
     src
     include
     CMakeLists.txt

Они будут сгенерированы при использовании cmake:

Project_build_dbg
     bin
     lib
     test

Project_build_release
     bin
     lib
     test
1 голос
/ 22 марта 2011

Макет, который вы предлагаете использовать, в значительной степени соответствует организации большинства проектов.И это очень хорошо организованный способ иметь проект.У меня также обычно есть папка docs, в которой хранится вся документация по проекту.Вот моя обычная настройка проекта.

Project -
    lib //Library output folder
    bin //Executable output folder
    src //All cpp source files
    include //All header files
    test //All tests
    docs //All project documentation   ------> new addition
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...