我在OpenSceneGraph(OSG-3.4.0)库中使用Qt(5.5.1)。 我有一个基本的“HelloWorld”项目,可以在Windows 7上的另一台机器上从Qt编译和工作。但是当我尝试在Linux(Lubuntu-14.04)上编译同一个项目时,Qt中的CMake找不到OSG库。 最奇怪的是,当我从命令行运行cmake
时,所有库都find了 – 没有问题 。
所以,这就是我在我的CMake项目文件中search库的方法:
# ... find_package(OpenSceneGraph REQUIRED COMPONENTS osgDB osgGA osgUtil osgViewer) include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS}) #... target_link_libraries( ${PROJECT_NAME} ${OPENSCENEGRAPH_LIBRARIES} )
我也包括一些Qt库,他们没有发现问题。
当我在Qt中检查CMake的位置(在“ pipe理工具包…”菜单中)时,它显示出与我从命令行运行which cmake
时相同的path。 所以, cmake
可执行文件是相同的,位于/usr/bin/
。 我的cmake --version
是2.8.12.2。
我的.zshrc
包含所有已安装OSG库的path(如OSG安装手册中所述):
export OPENTHREADS_INC_DIR="/usr/local/include" export OPENTHREADS_LIB_DIR="/usr/local/lib64:/usr/local/lib" export PATH="$OPENTHREADS_LIB_DIR:$PATH" export LD_LIBRARY_PATH="/usr/local/lib64:/usr/local/lib:$LD_LIBRARY_PATH" export OSG_FILE_PATH="/usr/local/OpenSceneGraph/data:/usr/local/OpenSceneGraph/data/Images"
我发现我的问题的时间解决scheme:
cmake
; 这样一切正常。
但是,我想知道问题在哪里,以便我可以从Qt运行cmake; 几天来我一直在嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡嗡嗒嗒嗒嗒嗒嗒, 任何提示和build议表示赞赏。
UPD :这里是我尝试从Qt运行CMake时得到的错误信息:
-- Could NOT find osgDB (missing: OSGDB_LIBRARY) -- Could NOT find osgGA (missing: OSGGA_LIBRARY) -- Could NOT find osgUtil (missing: OSGUTIL_LIBRARY) -- Could NOT find osgViewer (missing: OSGVIEWER_LIBRARY) -- Could NOT find osg (missing: OSG_LIBRARY) -- Could NOT find OpenThreads (missing: OPENTHREADS_LIBRARY) CMake Error at /usr/share/cmake-2.8/Modules /FindPackageHandleStandardArgs.cmake:108 (message): Could NOT find OpenSceneGraph (missing: OPENSCENEGRAPH_LIBRARIES OSGDB_FOUND OSGGA_FOUND OSGUTIL_FOUND OSGVIEWER_FOUND OSG_FOUND OPENTHREADS_FOUND) (found version "3.4.0") Call Stack (most recent call first): /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-2.8/Modules/FindOpenSceneGraph.cmake:187 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:19 (find_package) -- Configuring incomplete, errors occurred!
OSG库文件安装在:
/usr/local/bin /usr/local/include /usr/local/lib64
UPD2 :如user1034749
build议,似乎有环境variables的问题。 当我从命令行启动QtCreator时 – 一切正常; 如果我从菜单中启动它,那么它无法find这些库。
不幸的是,我无法找到如何解决给定的设置问题。 我发现我的Linux机器上没有正确安装Qt。 要解决这个问题 :我必须从Linux机器上删除所有的Qt版本,然后重新安装一个新的Qt版本。