В этой статье я расскажу о том, как правильно писать современные CMakeLists.txt
файлы для C++ библиотек. Идеи, используемые в ней, основаны на докладе Крейга Скотта (разработчик CMake) и докладе Роберта Шумахера (разработчик vcpkg) c CppCon 2019. Поскольку мне достаточно часто приходится разрабатывать С++ библиотеки, я создал для себя небольшой шаблон cpp-lib-template, который будет использоваться в этой статье в качестве примера.
Рубрика «shared library»
Руководство по CMake для разработчиков C++ библиотек
2022-08-17 в 17:41, admin, рубрики: c++, cmake, library, open source, shared library, Программирование, системы сборкиПодарок всем под Ёлочку
2019-12-30 в 21:30, admin, рубрики: .net, C#, core 3.1, shared library, xamarin, Алгоритмы, ёфикаторИли всё-таки под Елочку?
Нет, под Ёлочку! Теперь точно с Ё, потому что это статья про ёфикацию!
И не просто теория или скрипты из командной строки, а настоящая рабочая программа, которую можно использовать как на компе так и на телефоне.
Читать полностью »
Тесты на Си без SMS и регистрации
2019-01-03 в 8:27, admin, рубрики: C, c++, cutter, shared library, Программирование, простота, разделяемые объекты, Си, тесты, фреймфорк, юнит-тестыНедавно zerocost написал интересную статью «Тесты на C++ без макросов и динамической памяти», в которой рассматривается минималистический фреймворк для тестирования Си++ кода. Автору (почти) удалось избежать использования макросов для регистрации тестов, однако вместо них в коде появились «волшебные» шаблоны, которые лично мне кажутся, простите, невообразимо уродскими. После прочтения статьи у меня оставалось смутное чувство неудовлетворённости, так как я знал, что можно сделать лучше. Я сразу не смог вспомнить где, но я точно видел код тестов, который не содержит ни единого лишнего символа для их регистрации:
void test_object_addition()
{
ensure_equals("2 + 2 = ?", 2 + 2, 4);
}
Наконец-то я вспомнил, что этот фреймворк называется Cutter и он использует по-своему гениальный способ идентификации тестовых функций.
Position-independent code (PIC) в разделяемых библиотеках на x64
2017-03-24 в 6:17, admin, рубрики: C, disassembling, linux, pic, shared library, Блог компании Badoo, Компиляторы, Разработка под Linux, системное программирование
Привет, я все еще Марко и все еще системный программист в Badoo. На прошлой неделе я опубликовал перевод о PIC в шареных библиотеках, но есть вторая часть – про разделяемые библиотеки на х64, поэтому решил не оставлять дело незаконченным.
Вызов функций Go из других языков
2017-03-21 в 8:46, admin, рубрики: api, C, Go, python, shared library, Блог компании Mail.Ru Group, никто не читает теги
С версии 1.5 компилятор Go поддерживает несколько режимов сборки, определяемых флагом buildmode
. Их ещё называют режимами исполнения Go (Go Execution Modes). С их помощью go tool
может компилировать пакеты Go в нескольких форматах, включая архивы и библиотеки общего пользования Go (shared libraries), архивы и библиотеки общего пользования Си, а с версии 1.8 — и динамические плагины Go.
В статье мы рассмотрим компилирование пакетов Go в библиотеки Си. В этом режиме сборки компилятор генерирует стандартный бинарный файл объекта (shared object) (.so), передавая функции Go в качестве API в стиле Си. Мы поговорим о том, как создавать библиотеки Go, которые можно вызывать из C, Python, Ruby, Node и Java.
Весь код доступен на GitHub.
Position-independent code (PIC) в разделяемых библиотеках
2017-03-15 в 7:02, admin, рубрики: C, disassembling, linux, pic, shared library, Блог компании Badoo, Компиляторы, Разработка под Linux, системное программирование
Привет. Меня зовут Марко, и я системный программист в Badoo. Я очень люблю досконально разбираться в том, как работают те или иные вещи, и тонкости работы разделяемых библиотек в Linux не исключение. Я представляю вам перевод именно такого разбора. Приятного чтения.