我在OpenSceneGraph(OSG-3.4.0)庫中使用Qt(5.5.1)。我有一個基本的「HelloWorld」項目,它可以在Windows 7上的另一臺機器上編譯和運行。但是當我嘗試在Linux上編譯同一個項目(Lubuntu-14.04)時,Qt中的CMake找不到OSG庫。 最奇怪的是,當我從命令行運行cmake
時,找到了所有的庫 - 沒有問題。Qma中的cmake無法找到第三方庫,而來自命令行的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"
我發現我的問題的時間的解決方案:
- 第一我從命令行運行
cmake
; - 然後我給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時 - 一切正常;如果我從菜單啓動它,那麼它無法找到這些庫。
如果'cmake'從命令行工作,但不能從IDE(Qt創建者?)工作,那麼在環境變量問題中,嘗試從命令行運行Qt創建者 – fghj
需要更多信息:1.錯誤消息,當CMake失敗找到包(它會顯示什麼不能找到)。 2.包裹實際放置的位置。 – Tsyvarev
對不起,我忘了顯示錯誤,現在更新。 – vicrucann