[英]osgART install on windows - CMake error 'Could NOT find OpenSceneGraph'
[英]Compile OpenSceneGraph with Cmake under Windows
我正在尝试使用Cmake设置Openscenegraph 3.0.1。 我读了不同的博客文章,但是没有用。
我设置路径,单击“编译”并选择VS11(因为我有VS 2012)并使用本机编译器。
然后我直接得到这个错误:
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules CMakeCInformation.cmake:37 (get_filename_component):
get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
CMakeLists.txt:3 (PROJECT)
CMake Error: Internal CMake error, TryCompile configure of cmake failed
Looking for include file pthread.h - not found
同样,使用相同的堆栈跟踪会发生更多错误。 如果您愿意,也可以将其粘贴在此处。
之后,CMake告诉我“配置过程出错,项目文件可能无效”
您的问题不在您使用的编译器版本中; 实际上,我在Visual Studio 2012上没有问题地运行OpenSceneGraph 3(和osgEarth)。
似乎是Cmake / CMakeLists.txt本身存在问题。 尝试使用cmake构建其他项目,以查看它们是否工作,或者尝试使用与OpenSceneGraph所需版本接近的CMake版本(请在主CMakeLists.txt文件中查看CMAKE_MINIMUM_REQUIRED),尽管CMake旨在兼容对于早期版本,我不知道是否总是这样。
pthread.h与您的问题无关,在Windows中不存在(除非您使用MinGW查找更多问题),并且OSG不需要-我认为您正确配置了OpenThreads而不使用libs你没有。 无论如何,这只是CMake在每次构建中所做的工作的一部分-寻找一些随机的东西,例如是否可以找到pthreads.h,这使CMake对您的环境有所了解,并且通常与所构建的项目无关与cmake。 因此,只需忽略关于pthread.h的那一行
通常情况下,CMake不应为Windows寻找pthread
。 以下是CMake(2.8) FindThreads.cmake
的两行FindThreads.cmake
,用于搜索适当的模块。
...
CHECK_INCLUDE_FILES("pthread.h" CMAKE_HAVE_PTHREAD_H)
if(CMAKE_HAVE_PTHREAD_H)
...
endif()
...
if(CMAKE_SYSTEM MATCHES "Windows")
set(CMAKE_USE_WIN32_THREADS_INIT 1)
set(Threads_FOUND TRUE)
endif()
如您所见,第一个检查应该失败并延期至第二个检查。 但是,我相信在您的情况下,CMake会以某种方式找到pthread.h
(也许您也有MinGW)。这似乎是系统中的一个简单冲突。 检查系统的PATH等,然后尝试修复它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.