【发布时间】:2018-09-02 19:03:35
【问题描述】:
我的程序需要从本机文件中读取 jpeg 图像。为此,我下载了官方 jpeglib c 源代码,该代码在该程序的 Windows 版本上完美运行,该程序使用 Embarcadero RAD Studio 8 进行编程。
但是当我尝试在 Android Studio JNI 中使用相同的源代码时,我发现几乎每个 c 源文件都有很多错误:( 下面是截图:
如你所见,两者都有错误
-宏扩展(ERREXIT,红色下划线),抱怨“类 'blahblah' 没有字段 'blahblah'”。
-成员方法(代码中的红色文本),它还抱怨“类 'blahblah' 没有字段 'blahblah'”。
看起来有许多 C 语言类和字段,或者可能全部都不起作用。但是 jpeglib 源代码肯定包含所有这些,只是在 Android Studio 中无法正常工作!可能 Android Studio C 编译器在某种程度上受到了限制,但必须有某种方法可以绕过它......
这个问题在 C++ 源文件中不存在。对于 java 和 C++ 源文件,我有不同的源文件夹(也有单独的 jni 文件夹,但我不使用它,可能我应该使用它),但 C 源文件位于 C++ 文件夹中。我在 CMakeLists.txt 的 add_library() 指令的括号内添加了所有 c、cpp、h 和 hpp 源文件,仅此而已。不知道够不够...
我很高兴收到任何解决此问题的建议。
【问题讨论】:
-
第一条错误信息是什么?头文件都找到了吗?
-
获取tour、阅读How to Ask和minimal reproducible example。您的 IDE 的图像非常无用。从您的构建日志中发布错误消息。如有必要,发布代码。您可能只是在
includes环境变量或构建配置文件中缺少一两个路径。 -
@thejonny 当我单击重建项目时,列出的第一个错误是“字段类型不完整'xPen'”,它来自 cpp 文件。编译器在转到 c 文件之前停止构建。找到了所有头文件,但我将在 h 和 hpp 文件之间重新检查。我想我不需要在 CMakeLists 中列出与 c 或 cpp 文件同名的头文件。 jwdonahue 感谢您的支持,但我认为我的问题是我能写的最好的。
-
为什么投反对票?
-
希望下面的帖子能帮到你:stackoverflow.com/questions/51613950/…
标签: android c++ c java-native-interface jpeg