微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Qt中的cmake无法在命令行执行cmake的同时find第三方库

我在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。

如何在Windows上为Android构buildopencv_contrib模块

用Linux上的CMake构buildGoogle glog

cmake – find_library – 自定义库位置

CMake保存剥离的debugging信息

CMakelists.txt是非常复杂的让Windows和Mac的工作,有没有更好的办法?

我的.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的只是build立文件夹的位置。

这样一切正常。

但是,我想知道问题在哪里,以便我可以从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 :如user1034749build议,似乎有环境variables的问题。 当我从命令行启动QtCreator时 – 一切正常; 如果我从菜单中启动它,那么它无法find这些库。

Cmake:如何将库标记为依赖于系统库

与cmake,icc和pthreads(linux)链接

Qt / CMake:在标识符'slots'`之前缺less':'

CMake发布步骤:根据visual studioconfiguration复制多个文件

CMake – 针对不同目标的不同包含目录?

不幸的是,我无法找到如何解决给定的设置问题。 我发现我的Linux机器上没有正确安装Qt。 解决这个问题 :我必须从Linux机器上删除所有的Qt版本,然后重新安装一个新的Qt版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐