Как подключить библиотеку в clion
Перейти к содержимому

Как подключить библиотеку в clion

  • автор:

Как правильно добавить библиотеку для проекта в CLion?

Итак, в Visual Studio этот процесс был довольно простым — скачать библиотеку, собрать с помощью MSVC и добавить ее в компоновщик в свойствах проекта. Что насчет CLion?

Как мне удается добавить, например Crypto ++ библиотека в мой проект с CLion?

Из того, что я узнал, CLion зависит от CMake, поэтому мне лучше использовать файл CMakeLists.txt для обработки всех зависимостей для моего проекта, однако, чтобы использовать что-то вроде find_package(CryptoPP REQUIRED) там мне нужно как-то это зарегистрировать?

Как правильно установить библиотеку в CLion?

Решение

Это поможет вам на правильном пути.

add_library (target_name исходные_файлы)

И если вы хотите построить динамическую библиотеку, вы можете использовать add_library (имя_целевого объекта SHARED source_files)

Add external c++ libraries to a CLion project

I am using CLion from Mac, and i’m having problems to understand how can i add external libraries to my project. So, how can i add external libraries to a c++ project?

genpfault's user avatar

2 Answers 2

Manually edit CMakeLists.txt adding the following lines at the end with the proper paths for your system and proper ProjectName. This config is for an Ubuntu 17.04 workstation.

Hope this helps.

You can test it with the following:

in CMakeLists.txt , add external library information. first, you can define a logical name for the external library, say for e.g. we want to link a shared library which has .so file somewhere already installed on the system,

add_library(myLogicalExtLib SHARED IMPORTED)

IMPORTED means that the library already exists and we don’t need to build it here in this project.

then, we can supply the location information about this logical library as follows,

Русские Блоги

Как использовать CMake для импорта сторонних библиотек в CLion

CMake — это кроссплатформенный инструмент для установки (компиляции), вы можете простыми предложениями описать установку (процесс компиляции) всех платформ. Он может выводить различные файлы сборки или проекта, а такжетестФункции C ++, поддерживаемые компилятором, аналогичны функциям automake в UNIX.

Как использовать CMake

Все операторы CMake записываются в файл с именем CMakeLists.txt. Когда файл CMakeLists.txt подтвержден, вы можете использовать команду ccmake для настройки соответствующих значений переменных. Эта команда должна указывать на каталог, в котором находится CMakeLists.txt. После завершения настройки используйте команду cmake для создания соответствующего make-файла (в Unix-подобной системе) или файла проекта (при компиляции с помощью соответствующего инструмента программирования под окном).

Базовый рабочий процесс:

Где каталог — это каталог, в котором находится CMakeList.txt;

  • Первый оператор используется для настройки параметров компиляции, таких как каталог VTK_DIR. Как правило, этот шаг не требует настройки, просто выполните второй оператор напрямую, но при возникновении ошибки вам необходимо рассмотреть конфигурацию здесь, и этот шаг действительно пригодится ;
  • Вторая команда используется для создания файлов Makefile в соответствии с CMakeLists.txt;
  • Третья команда используется для выполнения файла Makefile, компиляции программы и создания исполняемого файла;

Выполнение CMake очень простое. Сложность заключается в том, как написать файл CMakeLists.txt. Ниже приводится краткое введение в подготовку файла CMakeLists.txt с примером. Посмотрите на следующий файл CMakeLists.txt.

Или используйте следующий CMakeLists.txt

Это CMakeLists.txt программы для тестирования математических функций, содержимое после "#" — это комментарий, команды CMake все в верхнем регистре.

Вторая строка указывает, что сгенерированный проект называется test_math.

Строка 4 определяет каталог файла заголовка как включаемый

Строка 8 указывает каталог исходного файла как src и назначает его переменной окружения DIR_SRCS.

Строка 10 устанавливает значение переменной среды TEST_MATH равным значению переменной среды DIR_SRCS, здесь используется, чтобы показать, как использовать переменные среды для присвоения значений переменным среды.

Строка 14 назначает библиотеку математических функций переменной среды LIBRARIES. Конечно, эту переменную среды можно не указывать, а имя библиотеки можно использовать непосредственно позже.

Строка 18 используется для указания сгенерированного файла, компиляции всех файлов в каталоге переменной среды TEST_MATH для создания исполняемого файла bin в каталоге ../bin

В 20-й строке указано, что библиотека компоновки при выполнении ../bin/bin является значением переменной среды LIBRARIES-libm.so.

Поместите CMakeLists.txt в текущий каталог и выполните CMakeLists.txt

Вы можете сгенерировать исполняемый файл, файл bin в каталоге / bin, и запустить его, чтобы увидеть, соответствует ли результат ожидаемому.

1. Основное использование

Установка: После загрузки бинарного пакета его можно сразу распаковать и использовать.

Чтобы установить из исходного кода, выполните команду: ./bootstrap; make; make install-failed to try to run bootstrap.

Используйте: cmake dir_path, сгенерируйте файлы проекта или файлы makefile

Во-вторых, концепция

out-of-sourceСборка, в отличие от сборки из исходного кода, то есть размещение скомпилированных выходных файлов и исходных файлов в разных каталогах;

В-третьих, основная структура

1. Положитесь на файл CMakeLists.txt, можно указать одну главную цель проекта и подкаталоги, включенные в основной каталог;

2. Используйте проект, чтобы указать имя проекта в CMakeLists.txt проекта, add_subdirectory, чтобы добавить подкаталоги

3. Подкаталог CMakeLists.txt унаследует настройки родительского каталога CMakeLists.txt (подлежит проверке).

4. Грамматика

2. Переменные: используйте команду set для явного определения и присвоения значений. В операторах, отличных от if, используйте $ <> для ссылки и напрямую используйте имена переменных в операторах if; последующие команды set очистят исходное значение переменной;

3. command (args . ) # Команды не чувствительны к регистру, параметры разделяются пробелами, а для заключения пробелов в параметрах используются двойные кавычки.

4. set (var a; b; c) <=> set (var a b c) #define variable var и присвоить ей a; b; c такой список строк

5. Add_executable ($ ) <=> Add_executable (a b c) #variable use $ ссылка

6. Условное заявление:

if (var) #var Непусто 0 N Нет ВЫКЛ FALSE . # Использование в нерабочем режиме НЕ

7. Заявление цикла

8. Заявление о петле

V. Внутренние переменные

CMAKE_C_COMPILER: Укажите компилятор C

CMAKE_CXX_COMPILER

CMAKE_C_FLAGS: Параметры при компиляции файлов C, такие как -g; вы также можете добавить параметры компиляции через add_definitions

EXECUTABLE_OUTPUT_PATH: Путь хранения исполняемого файла

LIBRARY_OUTPUT_PATH: Путь к файлу библиотеки

CMAKE_BUILD_TYPE:: Тип сборки (Отладка, Выпуск, . ), CMAKE_BUILD_TYPE = Отладка

BUILD_SHARED_LIBS:Switch between shared and static libraries

Использование встроенных переменных:

>> Укажите в CMakeLists.txt, используйте set

>> Используется в команде cmake, например cmake -DBUILD_SHARED_LIBS = OFF

В-шестых, порядок

project(ПРИВЕТ) # Указываем название проекта, название сгенерированного проекта ВК;

>> Используйте $ , чтобы указать корневой каталог проекта.

include_directories: Укажите путь поиска файла заголовка, что эквивалентно указанию параметра -I в gcc

>> include_directories ($ / Hello) # Добавить Hello, чтобы включить каталог

link_directories: Путь поиска библиотеки динамической компоновки или библиотеки статической компоновки, что эквивалентно параметру -L в gcc

>> link_directories ($ / Hello) # Добавить Hello как каталог ссылок

add_subdirectory: Содержит подкаталоги

add_executable: Скомпилируйте исполняемую программу, укажите компиляцию, вроде можно добавить файл .o

>> add_executable (helloDemo demo.cxx demo_b.cxx) # Скомпилировать cxx в исполняемый файл——

add_definitions: Добавить параметры компиляции

>> add_definitions (-DDEBUG) добавит определение макроса DEBUG в командную строку gcc;

>> add_definitions( “-Wall -ansi –pedantic –g”)

target_link_libraries: Добавить библиотеку ссылок, как при указании параметра -l

>> target_link_libraries (demo Hello) # Подключить исполняемый файл и Hello к финальному файлу demo

add_library:

>> add_library (Hello hello.cxx) # Скомпилируйте hello.cxx в статическую библиотеку, такую ​​как libHello.a

add_custom_target:

message( status|fatal_error, “message”):

set_target_properties( . ): lots of properties. OUTPUT_NAME, VERSION, .

link_libraries( lib1 lib2 . ): All targets link with the same set of libs

Семь, описание

1. Makefile, созданный CMAKE, может обрабатывать изменение файла .h и компилировать только необходимый файл cpp;

8. FAQ

1) Как получить все исходные файлы в каталоге

>> Сохраните все исходные файлы (кроме файлов заголовков) в каталоге в переменной, а затем используйте add_executable (ss7gw $ ).

2) Как указать цель компиляции проекта

>> Обозначение команды проекта

3) Как добавить динамические и статические библиотеки

>> Добавьте команду target_link_libraries

4) Как распечатать сообщения при выполнении CMAKE

>> message([SEND_ERROR | STATUS | FATAL_ERROR] "message to display" . )

>> Обратите внимание на корпус

5) Как указать заголовочный файл и путь к файлу библиотеки

>> include_directories и link_directories

>> Может вызываться несколько раз для установки нескольких путей

>> link_directories влияет только на цели, стоящие за ним

6) Как отличить отладочную версию от релизной

>> Создайте два каталога отладки / выпуска, соответственно выполните в них cmake -DCMAKE_BUILD_TYPE = Debug (или Release). Когда вам нужно скомпилировать разные версии, введите разные каталоги и выполните make;

Версия отладки будет использовать параметр -g; версия выпуска будет использовать -O3 -DNDEBUG

>> Другой способ настройки — например, версия DEBUG для установки параметров компиляции DDEBUG

Просто добавьте параметры при выполнении cmake, например cmake -D DEBUG_mode = ON

7) Как установить условную компиляцию

НапримерВ отладочной версии устанавливается параметр компилятора DEBUGИ изменения не должны менять CMakelist.txt

>> Используйте команду option, например:

option(DEBUG_mode "ON for debug or OFF for release" ON)

>> Как сделать его эффективным: сначала cmake генерирует make-файл, а затем make edit_cache для редактирования параметров компиляции;LinuxЗатем откроется текстовое поле, вы можете изменить его, а затем make для генерации целевого файла после того, как это будет сделано — emacs не поддерживает make edit_cache;

>> Ограничения: этот метод не может напрямую установить сгенерированный make-файл, но должен использовать команды для установки параметров перед make; для отладочной и выпускной версий это эквивалентно двум каталогам: cmake и make edit_cache соответственно;

>> Желаемый эффект: напрямую указать элемент переключения через параметр при выполнении cmake и сгенерировать соответствующий make-файл — это можно сделать, например, cmake -DDEBUGVERSION = ON

8) Как добавить определение макроса компиляции

>> Используйте команду add_definitions, см. Описание раздела команд

9) Как добавить зависимости компиляции

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

10) Как указать целевой каталог документов

>> Создайте новый каталог, выполните cmake в каталоге для создания файла Makefile, чтобы результат компиляции был сохранен в этом каталоге, аналогичном

11) Папок много, нужно ли каждую папку собирать в файл библиотеки?

>> Вы не можете использовать CMakeList.txt в подкаталоге, а напрямую указывать подкаталог в верхнем каталоге

12) Как установить зависимую версию cmake

13) Как указать относительный путь

>> $ представляет корневой каталог исходного файла, $ представляет корневой каталог двоичного файла?

14) Как настроить каталог для компиляции промежуточных файлов

15) Как использовать сравнение строк или чисел в предложениях IF

>> Сравнение чисел LESS, GREATER, EQUAL, сравнение строк STRLESS, STRGREATER, STREQUAL,

IF(AAA STREQUAL abc)

Сообщение (СТАТУС "истина") # должен выводить истину

16) Компилировать ли только необходимые файлы cpp при изменении файла h

17) На машине установлены VC7 и VC8, CMAKE автоматически выполнит поиск компилятора, но как указать определенную версию?

18) Как указать параметры компиляции в зависимости от ОС

>> IF( APPLE ); IF( UNIX ); IF( WIN32 )

19) Могут ли некоторые команды до и после компиляции выполняться автоматически?

>> Да, подлежит уточнению

20) Как распечатать вывод make

Интеллектуальная рекомендация

Реализация JavaScript Hashtable

причина Недавно я смотрю на «Структуру данных и алгоритм — JavaScript», затем перейдите в NPMJS.ORG для поиска, я хочу найти подходящую ссылку на библиотеку и записывать его, я могу исполь.

MySQL общие операции

jdbc Транзакция: транзакция, truncate SQL заявление Transaction 100 000 хранимая процедура mysql msyql> -определить новый терминатор,Пробелов нет mysql>delimiter // mysql> -создание хранимой .

Используйте Ansible для установки и развертывания TiDB

жизненный опыт TiDB — это распределенная база данных. Настраивать и устанавливать службы на нескольких узлах по отдельности довольно сложно. Чтобы упростить работу и облегчить управление, рекомендуетс.

Последняя версия в 2019 году: использование nvm под Windows для переключения между несколькими версиями Node.js.

С использованием различных интерфейсных сред вы можете переключаться между разными версиями в любое время для разработки. Например, развитие 2018 года основано наNode.js 7x версия разработана. Тебе эт.

Шаблон проектирования — Создать тип — Заводской шаблон

Заводская модель фабрикиPattern Решать проблему: Решен вопрос, какой интерфейс использовать принципСоздайте интерфейс объекта, класс фабрики которого реализуется его подклассом, чтобы процесс создания.

Clion и SFML

Привет, это статья посвящена установке и подключение библиотеки SFML к среде разработки Clion в Linux Ubuntu. Я не могу гарантировать что это способ заработает на других дистрибутивах linux, но то что это работает в Ubuntu гарантирую на 90 %.

Проблемы

Я заметил что у многих людей возникают трудности подключения sfml не только к Clion, но и к другим средам разработки отличных от Visual Studio. Это видно по количеству запросов на форуме и видеороликов на youtube. В частности это проблемы связанны с cmake.

Установка

Итак приступим. Для начала воспользуемся информацией с официального сайта sfml, по установке на Ubuntu.

Забыл упомянуть что способ который я описываю работает с sfml 2.5 и выше. Для начала открываем терминал и вставляем туда команду:

для установки sfml по стандартному пути.

Подключение

Открываем ваш clion и создаем новый c++ проект. После создание открываем файл — CmakeList.txt.

По умолчание ваш CmakeList.txt выглядит так.

Мы же изменим его вот так.

В строке find_package() мы находим sfml по стандартному пути. В строке target_link_libraries() мы подключаем библиотеки. Вы также можете подключить остальные библиотеки sfml, например: sfml-network.

Тогда это будет выглядеть так: target_link_libraries(ваш проект sfml-graphics sfml-audio sfml-network).

Запуск!

Все готов обновляем ваш CmakeList.txt. и можно запускать.
Вставляем в ваш файл с функцией main тестовый код с сайта sfml.

Заключение

И теперь вы можете работать с вашими sfml проектами в среде разработки clion.Или другой среды использующей build — систему cmake.

Для написание статья использовалась следующая информация: официальный сайт SFML.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *