android - 使用预编译 header 时 GCC 失败且没有消息

标签 android c++ gcc android-ndk precompiled-headers

我正在尝试在我相当大的 android NDK 项目中使用预编译头文件。预编译头文件构建正确,我得到了 gch 文件,我在编译源文件时可以看到正在使用该文件。但是,“make”命令失败并显示错误 1,但 GCC 没有告诉我失败的原因:

../Makefile:##: recipe for target '...' failed
make[1]: *** [...] Error 1
make[1]: Leaving directory 

我还发现,重新排列 header 以使我的预编译 header 更小(大约 128MB)是可行的。我的 pch 的原始大小是 ~173MB。我知道对于 VS,有一个/Zm 选项允许您更改预编译 header 的大小限制,但我找不到 GCC 的此类选项,也找不到任何迹象表明 GCC 存在此类限制。

有没有人知道为什么我的构建会失败以及我如何解决这个问题?

提前致谢。

编辑:

一些说明:

1) 如果我不使用 PCH,代码会编译,所以我不会缺少库或文件或类似的东西。

2) 当编译正常失败时,我确实会收到 GCC 错误消息。只有这一种情况我没有看到。

最佳答案

没有看到完整的错误日志,我只能猜测。我找到了一个答案,表明问题可能出在您的系统上未安装的资源上。

https://unix.stackexchange.com/questions/182251/makefile29-recipe-for-target-siplib-o-failed-sip-installation

--编辑--

也许您的 PCH 大小设置得太大了?请参阅:PRECOMPILED HEADERS not working in debug build with Qt Creator / qmake / MinGw

关于android - 使用预编译 header 时 GCC 失败且没有消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081112/

相关文章:

android - proguard 导致 google play 服务的 ActivityRecognitionResult getMostProbableActivity 崩溃

android - 当我在空字符串上调用 .equals() 时得到 NullPointerException

javascript - 如何使用php检测Android手机?

C++ double cast void 指针

c++ - std::is_base_of 和 std::is_convertible 之间的区别

android - 让 picasso 与 "if-modified-since"和 "ETag"等 header 配合使用

c++ - 链表中修改的数据不会反射(reflect)在内存中

c++ - 为什么在通过 const 引用传递临时值时调用复制构造函数?

c - 在可执行二进制文件中嵌入修订号

c++ - g++ arm-none-eabi 从 4.9 升级到 gcc 8.2。生成的二进制文件不再适合闪存