2013-12-21 44 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