camke中采用vcpkg工具链设置OSG时
CMake中设置
# 检查是否找到 osg
find_package(OpenSceneGraph 3.6.5REQUIRED COMPONENTS osgosgUtilosgGAosgViewerosgDBosgQt
)
if(OpenSceneGraph_FOUND)#message(STATUS "Found osg lib: ${OPENSCENEGRAPH_LIBRARIES}")#message(OSGDB_FOUND=${OSGDB_FOUND}, ${OSGDB_INCLUDE_DIR}, ${OSGDB_LIBRARY})#message(OSGGA_FOUND=${OSGGA_FOUND}, ${OSGGA_INCLUDE_DIR}, ${OSGDA_LIBRARY})#message(OSGQT_FOUND=${OSGQT_FOUND}, ${OSGQT_INCLUDE_DIR}, ${OSGQT_LIBRARY})message(OPENSCENEGRAPH_FOUND=${OPENSCENEGRAPH_FOUND}, ${OPENSCENEGRAPH_INCLUDE_DIR}, ${OPENSCENEGRAPH_LIBRARIES})
else()message(FATAL_ERROR "osg not found!")
endif()
为了保证这个头文件#include <osgQOpenGL/osgQOpenGLWidget> 能正常,还得在cmake中重新包含一下,不知道为什么???
#获取vcpkg的路径
set(VCPKG_PATH1 "$ENV{VCPKG_PATH}/installed/x64-windows/include") #设置使用vcpkg的路径include_directories(${VCPKG_PATH1})
target_link_libraries(${DemoName} PRIVATE${OPENSCENEGRAPH_LIBRARIES}
)
在osg3.6.5中,osgQt已经分离为单独的子项目,其146版本使用了QOpenGL,其使用的头文件与生成的库与旧版osgQt相比,都发生了变化。需要对findosgqt.cmake文件进行修改,才能正常使用find_package(osgQt)或find_package(OpenSceneGraph 3.6.5 REQUIRE osgQt)。
使用CMake查找osgQt_qt项目cmakelist怎么找osg库-CSDN博客
C:\Program Files\CMake\share\cmake-4.0\Modules中找到FindosgQt
``OSGQT_LIBRARY_DEBUG``The osgQt debug library``$OSGDIR`` is an environment variable that would correspond to::./configure --prefix=$OSGDIRused in building osg.Created by Eric Wing. Modified to work with osgQt by Robert Osfield,
January 2012.
#]=======================================================================]# Header files are presumed to be included like
# #include <osg/PositionAttitudeTransform>
# #include <osgQt/GraphicsWindowQt>include(${CMAKE_CURRENT_LIST_DIR}/Findosg_functions.cmake)
#OSG_FIND_PATH (OSGQT osgQt/GraphicsWindowQt)
#OSG_FIND_LIBRARY(OSGQT osgQt)
#20250914
OSG_FIND_PATH (OSGQT osgQOpenGL/osgQOpenGLWidget)
OSG_FIND_LIBRARY(OSGQT osgQOpenGL)include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(osgQt DEFAULT_MSGOSGQT_LIBRARY OSGQT_INCLUDE_DIR)