QtCreator — сборка и компоновка OpenCascade с помощью CMakeC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 QtCreator — сборка и компоновка OpenCascade с помощью CMake

Сообщение Anonymous »

Я хочу создать проект, использующий OpenCascade. Я также хочу собрать все библиотеки. Это зависит от freetype, tcl и tk. Так что я тоже хочу все это построить.
Я пытаюсь понять, как это сделать правильно. Я использую Windows, если это имеет значение. Итак, прежде чем я начну возиться с методом проб и ошибок, чтобы заставить его как-то работать, я хотел бы спросить, каков «правильный» способ сделать это с помощью QtCreator и CMake. Предположим, что мои наборы инструментов настроены правильно для создания приложений Qt.
Предположим, что моя структура подпапок представляет собой новую загрузку библиотек:

Код: Выделить всё

mylibrary/main.cpp
occt-7_8_0/
freetype-2.10.4/
tcl8.5.0/
tk8.5.0/
Я не хочу использовать VTK, и мой файл main.cpp может выглядеть так:

Код: Выделить всё

#include 
#include

void makeBox(){
gp_Pnt gp1(0,0,0);
gp_Pnt gp2(1,1,1);

TopoDS_Solid box = BRepPrimAPI_MakeBox(gp1, gp2).Solid();
}
И CMakesList.txt моей библиотеки/

Код: Выделить всё

message("=== Occt wrapper as a lib ===")

add_library(mylibrary_lib SHARED)

if (CMAKE_COMPILER_IS_GNUCXX)
add_compile_options(-Wa,-mbig-obj)
endif()
if (MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
endif()

# find_package() uses Config.cmake-file in _DIR path
find_package(OpenCASCADE REQUIRED)
target_include_directories(mylibrary_lib PRIVATE "${OpenCASCADE_INCLUDE_DIR}") # OCC is needed

if(NOT OpenCASCADE_FOUND)
message(FATAL_ERROR "Cannot build the executable without OpenCASCADE. Please set the variable OpenCASCADE_DIR.")
else()
message("    found OpenCASCADE " ${OpenCASCADE_VERSION})

# include
target_include_directories(mylibrary_lib PUBLIC ${OpenCASCADE_INCLUDE_DIR})
message("    found OpenCASCADE_INCLUDE_DIR: ${OpenCASCADE_INCLUDE_DIR}" )
# link
target_link_libraries(mylibrary_lib PUBLIC ${OpenCASCADE_LIBRARIES}) # This should be private!
message("    found OpenCASCADE_LIBRARIES: ${OpenCASCADE_LIBRARIES}" )
endif()
target_sources(mylibrary_lib PUBLIC "./main.cpp")
ОБНОВЛЕНИЕ:
Я пытаюсь использовать vcpkg, как предложено. Вот что я сделал:
  • Установил vcpkg:
    https://learn.microsoft.com/de-de/vcpkg/get_started /get-started?pivots=shell-cmd

    Выполните шаг 1 «Настройка vcpkg»
  • Найдите и запомните путь к папке vcpkg.
  • Откройте CMD в этой папке.
  • Установите пакет opencascade, набрав:

    Код: Выделить всё

    vcpkg --install opencascade
[*]Настройка QtCreator
  • Установите и активируйте плагин "Vcpkg"
  • Перейдите в меню Edit/Preferences/CMake

    На вкладке Vcpkg:
    Найдите путь к каталогу vcpkg
  • На вкладке Общие:
    Отметьте опцию «Автоматическая настройка диспетчера пакетов»
[*]Перезапустите QtCreator

[*]создайте vcpkg.json в каталоге src библиотеки, который гласит:

Код: Выделить всё

{
"dependencies": [
"opencascade", "freetype", "tcl", "tk"
]
}
[*]Или используйте мастер в QtCreator:
https://doc.qt.io/qtcreator/creator-how-to -create-vcpkg-manifest-files.html



[*]В В CMakesList.txt добавить:

Код: Выделить всё

find_package(OpenCASCADE CONFIG REQUIRED)

Затем я очистил проект и нажал «Запустить CMake». Однако результат:

Код: Выделить всё

  Could not find a package configuration file provided by "opencascade" with
any of the following names:

opencascadeConfig.cmake
opencascade-config.cmake

Add the installation prefix of "opencascade" to CMAKE_PREFIX_PATH or set
"opencascade_DIR" to a directory containing one of the above files.  If
"opencascade" provides a separate development package or SDK, be sure it
has been installed.
CMakeCache.txt содержит

Код: Выделить всё

//Value Computed by CMake.
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=C:/path/to/build/build-projectname-Desktop_Qt_5_15_2_MSVC2015_64bit-Debug/CMakeFiles/pkgRedirects
Однако эта папка пуста.

Подробнее здесь: https://stackoverflow.com/questions/781 ... sing-cmake
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • QtCreator — сборка и компоновка OpenCascade с помощью CMake
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • QtCreator — сборка и компоновка OpenCascade с помощью CMake
    Anonymous » » в форуме C++
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Отладка стороннего библиотечного кода в Qtcreator в проекте Cmake
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Отладка стороннего библиотечного кода в Qtcreator в проекте Cmake
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Выделите вершину, ребро и грань мышью (OpenCASCADE)
    Гость » » в форуме C++
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость

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