致命错误:openssl / evp.h没有这样的文件或目录

时间:2012-10-23 06:13:29

标签: android android-ndk openssl

我使用android ndk build成功编译了openssl,并成功构建了.so文件。

我正在尝试在Android项目中“包含”已构建的.so文件。

在以下行中收到错误:

#include“openssl / evp.h”

致命错误:openssl / evp.h:没有这样的文件或目录 编译终止。 make: * [obj / local / armeabi / objs / iedemo / anotherdemo.o]错误1

但是,我包含stdio.h和string.h文件。

我正在探索/ usr / include / openssl目录,我可以在这里找到所有与openssl相关的.h文件。并且,stdio.h和string.h文件存在于/ usr / include目录中。

我也安装了 libssl-dev 包。命令(sudo apt-get install libssl-dev)

请帮助我!!

3 个答案:

答案 0 :(得分:5)

在Debian或Ubuntu上遇到此问题时,可以使用以下命令解决:

protected void Button13_Click(object sender, EventArgs e) { List<string> itemList = new List<string>(); Label2.Text = string.Empty; for (int i = 0; i < ASPxGridView1.VisibleRowCount; i++) { if (ASPxGridView1.Selection.IsRowSelected(i)) { itemList.Add(ASPxGridView1.GetSelectedFieldValues("ID").ToString()); } } Label2.Text = string.Join("<br />", itemList); }

答案 1 :(得分:1)

您的Android.mk应该指定openssl包含目录(不是/usr/include/openssl,而是指定使用NDK为Android构建的文件的目录。类似于

LOCAL_C_INCLUDES += /home/Charan/openssl/include

但您还需要指定已构建的.so个文件的路径,并确保它们已正确部署到您的应用中。事情可能会变得混乱,但幸运的是有一个有效的例子:openSSL using Android's NDK problems

答案 2 :(得分:0)

我在使用PECL构建PHP包时遇到了这个问题,并且可以将头文件安装为 openssl-devel

的一部分

在CentOS / RHEL上:yum install openssl-devel

在Ubuntu / Debian上:apt-get install openssl-devel