Windows下QtCreator+CMake构建OpenCASCADE项目及vcpkg配置问题
Windows下QtCreator+CMake构建依赖OpenCASCADE及freetype/tcl/tk的项目问题
我需要在Windows系统上,通过QtCreator结合CMake构建一个依赖OpenCASCADE的项目,同时要编译它依赖的freetype、tcl、tk库,Qt工具链已配置正常。
我的文件夹结构如下:
mylibrary/main.cpp occt-7_8_0/ freetype-2.10.4/ tcl8.5.0/ tk8.5.0/
不使用VTK,main.cpp示例代码:
#include <TopoDS.hxx> #include <BRepPrimAPI_MakeBox.hxx> void makeBox(){ gp_Pnt gp1(0,0,0); gp_Pnt gp2(1,1,1); TopoDS_Solid box = BRepPrimAPI_MakeBox(gp1, gp2).Solid(); }
mylibrary目录下的CMakeLists.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(<module>) uses <module>Config.cmake-file in <module>_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来管理依赖,操作步骤如下:
- 安装vcpkg并完成初始设置,记录vcpkg文件夹路径
- 在vcpkg目录打开CMD,执行安装命令:
vcpkg --install opencascade - 配置QtCreator:
- 安装并激活Vcpkg插件
- 进入「编辑/首选项/CMake」:
- 在Vcpkg标签页选择vcpkg目录路径
- 在常规标签页勾选「包管理器自动设置」
- 重启QtCreator
- 在库的src目录创建
vcpkg.json:{ "dependencies": [ "opencascade", "freetype", "tcl", "tk" ] }
- 在CMakeLists.txt中添加:
find_package(OpenCASCADE CONFIG REQUIRED)
清理项目并执行Run CMake后,出现如下错误:
CMake Error at src/lib_occ_scene/CMakeLists.txt:47 (find_package): 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
但该文件夹是空的。
内容的提问来源于stack exchange,提问作者KungPhoo
相关产品推荐
相关产品推荐

