Eclipse 中的无限重建循环 CDT

Infinite rebuild loop in Eclipse CDT

我承认我的设置有点粗略。这与 Eclipse Indigo 一起工作正常,但 Luna 不断地重建我的 C++ Android 项目。

当我 select "Build on resource save (Auto build)" 时会发生这种情况,这非常方便。选中此选项会让我进入无限重建循环。

我正在构建一个没有任何 java 层的 Android C++ 可执行文件。我 select 在工具链编辑器中编辑了 Cross GCC,我删除了除 Cross G++ 之外的所有工具。此步骤使包含路径选项卡出现在 C/C++ 常规配置中。

我调用 c:\android\android-ndk-windows\ndk-build.cmd 作为构建命令。 我用参数 NDK_DEBUG=1 V=1

检查了构建(增量构建)

像这样:

我从刷新策略中删除了所有内容,因为我怀疑 ndk-build 修改了项目文件,构建器将其作为更改拾取,这会产生有问题的循环。

我还为 android ndk 添加了 boost,它有自己的 Android.mk。我自己的 Android.mk 看起来像这样:

LOCAL_PATH := $(call my-dir)

include $(call all-subdir-makefiles)

include $(CLEAR_VARS)



LOCAL_CC = C:\android\android-ndk-windows\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-gcc.exe
LOCAL_CXX = C:\android\android-ndk-windows\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin\arm-linux-androideabi-g++.exe

LOCAL_MODULE    := EventInjectorNative
LOCAL_SRC_FILES := ~SRC_LIST~

LOCAL_CPP_EXTENSION := .cpp

LOCAL_CPPFLAGS := -g -std=c++11
LOCAL_CFLAGS := -g

LOCAL_STATIC_LIBRARIES := boost_filesystem boost_system

#LOCAL_C_INCLUDES := C:\android\android-ndk-windows\sources\cxx-stl\gnu-libstdc++.8\include
#LOCAL_C_INCLUDES += /cygdrive/c/android/android-ndk-windows/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include
#LOCAL_C_INCLUDES += C:\android\android-ndk-windows\sources\cxx-stl\gnu-libstdc++.8\libs\armeabi-v7a\include
#LOCAL_C_INCLUDES += C:\android\android-ndk-windows\platforms\android-19\arch-arm\usr\include


LOCAL_C_INCLUDES := C:\android\android-ndk-windows\sources\cxx-stl\gnu-libstdc++\4.8\include
LOCAL_C_INCLUDES += C:\android\android-ndk-windows\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include
LOCAL_C_INCLUDES += C:\android\android-ndk-windows\platforms\android-19\arch-arm\usr\include
LOCAL_C_INCLUDES += C:\android\android-ndk-windows\sources\boost





include $(BUILD_EXECUTABLE)
$(call import-module, boost)

有什么方法可以判断是什么触发了自动构建? Eclipse 构建控制台仅显示自动构建由未显示任何原因或解释触发。

没有这个,项目构建并运行良好。 CDT 能够通过 tcp 和所有方式使用 gdb 进行调试。

这似乎是由 "CDT GCC Build Output Parser" 和 "Binary Debug Data Entries" 在 Properties -> C/C++ General -> Preprocessor Include Paths, Macros etc. (Gotta love the etc in名字...)

不知道这是怎么回事,但取消选中它会停止无限循环