我将Qt(5.5.1)与OpenSceneGraph(OSG-3.4.0)库一起使用。我有一个基本的"HelloWorld"项目,它在Windows7上的另一台机器上从Qt编译和工作。但是,当我尝试在Linux(Lubuntu-14.04)上编译相同的项目时,Qt中的CMake找不到OSG库最奇怪的是,当我从命令行运行cmake
时,所有的库都找到了——没问题。
所以,这就是我在CMake项目文件中搜索库的方式:
# ...
find_package(OpenSceneGraph REQUIRED COMPONENTS osgDB osgGA osgUtil osgViewer)
include_directories(${OPENSCENEGRAPH_INCLUDE_DIRS})
#...
target_link_libraries( ${PROJECT_NAME}
${OPENSCENEGRAPH_LIBRARIES}
)
我还包括一些Qt库,发现它们没有问题。
当我在Qt中检查CMake的位置时(在管理工具包…菜单中),它会显示与我从命令行运行which cmake
时相同的路径。因此,cmake
可执行文件是相同的,并且位于/usr/bin/
。我的cmake --version
是2.8.12.2。
我的.zshrc
包含已安装的OSG库的所有路径(如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"
我为我的问题找到了一个临时解决方案:
- 首先,我从命令行运行CCD_ 7
- 然后我给Qt一个构建文件夹的位置
一切都是这样运作的。
然而,我想知道问题出在哪里,这样我就可以从Qt运行cmake;它已经困扰了我好几天了,我不知道我的设置出了什么问题。任何提示和建议都将不胜感激。
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
所建议的,环境变量似乎存在问题。当我从命令行启动QtCreator时,一切都正常;如果我从菜单启动它,那么它找不到库。
不幸的是,我找不到如何用给定的设置来解决这个问题。我发现我的Qt没有正确安装在我的Linux机器上要解决这个问题:我不得不从Linux机器上删除所有Qt版本,然后重新安装一个新的Qt版本。