Создание кроссплатформенной библиотеки с CMake? - PullRequest
4 голосов
/ 12 марта 2011

Сложно ли использовать CMake? Я занимаюсь разработкой библиотеки с использованием Windows и MSVC ++. Я протестировал свой код в Linux и OSX, утомительно создавая объекты из каждого файла и создавая из этого библиотеку.

У меня есть несколько каталогов, например:

Agui
-> Widgets
      ->Button
      ->ListBox
 -> Backends
        -> Allegro

И что я хотел бы, например, если я в Windows, он автоматически генерирует проект msvc со всеми этими каталогами и файлами, включенными и готовыми для компиляции.

В Linux и OSX я бы хотел сделать что-то вроде

CMake

сделать

возможно ли это с помощью CMake, и это легко сделать, учитывая мою ситуацию. Спасибо

Ответы [ 3 ]

4 голосов
/ 12 марта 2011

Да, именно для этого и создан CMake. Огромные проекты , такие как KDE, используют CMake.И его легко настроить.

3 голосов
/ 12 марта 2011

Это именно то, для чего был разработан CMake.CMake генерирует собственные файлы сборки и рабочие пространства, которые можно использовать на любой платформе.Так что в Unix это, как правило, Unix Makefiles, в Windows Visual Studio вы можете выбрать версию Visual Studio, чтобы сгенерировать решение, которое можно открыть в IDE, или использовать NMake Makefiles.

Если вы хотите добавить простойбиблиотека, вы просто используете функцию add_library, давая ей имя библиотеки и список исходных файлов.Я бы порекомендовал взглянуть на CMake tutorial для краткого обзора.Существует также книга, Освоение CMake, наряду со многими учебными страницами.Вы также можете обратиться за помощью к командной строке CMake, cmake --help-command add_library покажет вам документацию add_library.

0 голосов
/ 12 марта 2011

CMake сгенерирует файлы проекта для ряда IDE, но я считаю, что automake + libtool, как правило, проще в использовании. Вот отличный учебник: http://www.lrde.epita.fr/~adl/autotools.html

Не стоит откладывать подсчет страниц: большинство из них - пошаговое раскрытие диаграмм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...