Как связать библиотеку RE2 в моем проекте как статическая библиотека с CmakeC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как связать библиотеку RE2 в моем проекте как статическая библиотека с Cmake

Сообщение Anonymous »

Мой вопрос: в этот момент я связываю Libre2 Dinamicaly, но я хочу сделать это статически. Я установил библиотеку в своем компьютере (Sudo Apt-Get Install Libre2-DEV), получил «двоичный» и связал этот бинарный «libre2.so» в моем исполняемом файле. Но я хочу поднять клонирование репозитория или сделать это GIT Submodule, затем построить этот репозиторий и связать его в моем проекте. . < /p>
  • моя структура проекта < /p>

    bin < /li>
    build < /li>
    Внешний

    re2 < /li>
    < /ul>
    < /li>
    main.cpp
  • cmakelists.txt
  • readme.md
    < /ul>
    < /li>
  • cmakelists.txt
    cmake_minimum_required (версия 2.6) < /p>
    Project (simmc-agent) < /p>
    номер версии < /h1>
    set (version_major 0)

    set (version_minor 0)
    cpr требует C ++ 11 < /h1>
    set (cmake_cxx_flags "$ {cmake_cxx_flags} -std = c ++ 11") < /p>
    src: main < /h1>
    файл (глобусные источники *.cpp) < /p>
    Связывание библиотеки Res Dinamicaly < /h1>
    set (re2_libraries -l $ {re2_library_dir} -l libre2.so) < /p>
    src: собирать функции -зависит от ОС < /h1>
    if ( Win32)

    file (глобусные источники $ {источники} src /windows / .cpp)

    else () # if (unix)

    File (Glob Sources $ {источники} src/linux/ .cpp)

    endif ()
    заголовки
    include_directories ("include") < /p>
    test < /h1>
    опция (print_json ", установленное для печати объектов json перед отправкой" Off)

    сообщение (статус "$ {print_json}: $ {$ {print_json}}")

    if (print_json)

    add_definitions (-dprint_json )

    endif () < /p>
    compile < /h1>
    set (cmake_runtime_output_directory "../bin")
    add_executable (Agent-v $ {version_major}. $ {version_minor} $ {источники})

    target_link_libraries (agent-v $ {version_major}. $ {version_minor} $ {re2_library}) < /p> br /> < /li>
    main.cppобразной < /p>
    с использованием пространства имен std;

    с использованием пространства имен re2; < /p>
    int main (int argc, char ** argv) {

    cout
    matchresult = re2 :: fullmatch ("Привет", "h.*o");
    cout

    Подробнее здесь: https://stackoverflow.com/questions/417 ... with-cmake
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»