2013-12-21 72 views
4

我想確保將任何所需的庫添加到開發的Android應用程序中。因此,我試圖將其正確定義爲LD_LIBRARY_PATH。命令ldd用於檢查我的Qt應用程序需要哪些庫。LD_LIBRARY_PATH定義所需的庫

當我在Ubuntu上運行ldd時,它應該給我MyApp所需庫的列表。然而,這是我得到迄今:

$ cd MyAppProjFolder 
$ ldd MyApp | grep libQt 
ldd: ./MyApp: not regular file 
$ file MyApp 
MyApp: directory 
$ cd Debug 
$ ldd MyApp | grep libQt 
./MyApp: No such file or directory 
$ cd android-build 
$ ldd MyApp | grep libQt 
./MyApp: No such file or directory 
$ cd bin 
$ ldd MyApp | grep libQt 
./MyApp: No such file or directory 

要查找的可執行文件位於我運行命令:

$ find /home/user/MyAppProjFolder -name MyApp 
/MyAppProjFolder/.../bin/classes/org/qtproject/example/MyApp 
$ ldd MyApp | grep libQt 
./MyApp: No such file or directory 

缺少什麼我在這裏?生成的可執行文件與定義的項目/應用程序的名稱不同?

+0

'file。/ MyApp'在文件夾中返回什麼? – lpapp

+0

@Laszlo Papp。我進入了主文件夾並使用我的應用程序的名稱運行ldd。從它提供的項目的根文件夾:ldd:./MyApp:不是常規文件。讓我知道這是你的意思嗎? –

+0

'file'是一個用於返回有關文件類型信息的Linux命令。既然你得到「不正規的文件」,我想看看這是什麼樣的文件... – lpapp

回答

3

基於註釋中的談話,你似乎有以下錯誤:

1)你正在嘗試運行在一個目錄或不存在的文件ldd

2)你似乎從你的主機上運行ldd目標二進制文件。它不一定是相同的。

我的建議是找到您的可執行文件,並確保您運行正確的ldd

編輯:既然你最初的帖子後,修改你的問題點在一定程度上,在這裏不用回覆:

缺少什麼我在這裏?

如何在同一個文件上使用find和ldd。

生成的可執行文件與定義的項目/應用程序的名稱不同?

這是/你在生成系統中定義的東西,所以我們不知道,特別是如果你不粘貼相關的代碼。

+0

你的意思是..可執行文件生成並放置在主機中,但在目標設備? –

+0

@Hatsune:真的,你需要找到你的可執行文件。它真的是基礎知識...... – lpapp

+1

它看起來挺需要的,但你應該使用'file/MyAppProjFolder/.../ bin/classes/org/qtproject/example/MyApp',如果這不是可執行文件,那麼你沒有一個可執行文件,只要你知道你的可執行文件的名字就可以了。 – lpapp