2015-11-07 27 views
2

我在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時 - 一切正常;如果我從菜單啓動它,那麼它無法找到這些庫。

+1

如果'cmake'從命令行工作,但不能從IDE(Qt創建者?)工作,那麼在環境變量問題中,嘗試從命令行運行Qt創建者 – fghj

+0

需要更多信息:1.錯誤消息,當CMake失敗找到包(它會顯示什麼不能找到)。 2.包裹實際放置的位置。 – Tsyvarev

+0

對不起,我忘了顯示錯誤,現在更新。 – vicrucann

回答

1

不幸的是我找不到如何解決給定設置的問題。我發現我的Qt在我的Linux機器上沒有正確安裝。 修復問題:我必須從Linux機器上刪除所有Qt版本,然後重新安裝新的Qt版本。