Linux Qt中的cmake找不到第三方库,而命令行中的cmake可以

Linux Qt中的cmake找不到第三方库,而命令行中的cmake可以,linux,qt,cmake,qt5,openscenegraph,Linux,Qt,Cmake,Qt5,Openscenegraph,我正在使用Qt(5.5.1)和OpenSceneGraph(OSG-3.4.0)库。我有一个基本的“HelloWorld”项目,它在Windows7的另一台机器上编译Qt并从Qt开始工作。但是当我尝试在Linux上编译同一个项目(Lubuntu-14.04)时,Qt中的CMake无法找到OSG库最奇怪的是,当我从命令行运行cmake时,所有库都被找到了-没有问题 这就是我在CMake项目文件中搜索库的方式: # ... find_package(OpenSceneGraph REQUIRED C

我正在使用Qt(5.5.1)和OpenSceneGraph(OSG-3.4.0)库。我有一个基本的“HelloWorld”项目,它在Windows7的另一台机器上编译Qt并从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的位置时(在管理工具包…菜单中),它会显示与从命令行运行
哪个CMake
时相同的路径。因此,
cmake
可执行文件是相同的,位于
/usr/bin/
。我的
cmake--version
是2.8.12.2

My
.zshrc
包含已安装OSG库的所有路径(如OSG安装手册中所述):

我找到了解决问题的临时解决方案:

  • 首先,我从命令行运行
    cmake
  • 然后我给Qt一个justbuild文件夹的位置
这样一切都能正常工作

但是,我想知道问题出在哪里,这样我就可以从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版本。

如果
cmake
从命令行工作,而不是从IDE(Qt creator?)工作,那么环境变量中的问题,请尝试从命令行运行Qt creator所需的更多信息:1。错误消息,当CMake未能找到包时(它将显示无法找到的内容)。2.包实际放置的位置。抱歉,我忘记显示错误,它现在已更新。对于用户1034749:显然,我无法从命令行运行qtcreator!这是不可能的。我现在正试图修复它,看看如果从命令行运行它会有什么表现。感谢您的建议。您的
.zshrc
文件似乎包含路径定义(
/usr/local/lib64
),它允许
OSG
相关库、
OpenThreads
OpenSceneGraph
(在相应的
find_-package()中包含
find_-library
)。出于某种原因,Qt不使用您的定义文件。为了使Qt工作,您可以传递其CMAKE的定义。
/usr/local/bin
/usr/local/include
/usr/local/lib64