需要一个简单的Linux C++集成开发环境(Android NDK)

4
我需要一个集成开发环境(IDE),必须具备以下功能:
  1. 允许运行~/android-ndk-r7/ndk-build脚本进行编译;
  2. 截取gcc输出并将其显示给我;
  3. 当我点击错误行时,跳转到错误位置:打开所提到的文件并定位到所提到的行。
我有一个大型现有的C ++项目,并将其移植到Android / NDK。
(Code :: Blocks和Eclipse都不能满足第3个要求。也许我漏掉了什么?)
3个回答

7
我配置了Code::Blocks 以进行Android NDK/JNI开发,但有一个技巧。Codeblocks认为它知道你使用的编译器,并想阻止你使用它不知道的编译器。你必须欺骗它。
1.创建一个空的codeblocks项目 2.手动添加您的源和头文件。 3.在工作区(左面板)中单击项目上的右鼠标按钮。您将看到一个菜单: (首先转到“属性”并指定它是自定义Makefile,然后转到“构建选项”) 4.进入“属性”并告诉CB它有一个自定义Makefile。不要告诉它关于平台的任何接近真相的东西:它会告诉你没有所需的编译器,甚至不会尝试构建任何东西。 5.最后,在“构建选项”中,选择GNU GCC编译器,进入“制作命令”,并编写您的自定义命令。 (个人我创建了一个调用ndk-build的Makefile-我更喜欢将脚本保存在文本文件而不是GUI对话框中。您可能想要更改的项目是-j4) PS如果您的配置不起作用,则无法获得有意义的诊断信息。
PS这是我的Makefile:
all:
    @echo '====all===='
    pwd;~/android-ndk-r7/ndk-build -j 4
clean:
    @echo '====clean===='
    pwd;~/android-ndk-r7/ndk-build clean

.PHONY: clean
.PHONY: all

第4步中的选项被禁用了。在进行第4步之前应完成第5步,以便使制作选项可编辑。 - over_optimistic
我无法让它正常工作;似乎无论我在第四步中输入什么都被忽略了,并显示“无法创建目标'Debug'的规则”。 - over_optimistic
在折腾了一番之后,我终于成功让它工作了。这太棒了!!我忘记把“静默编译”改成bash -c ". ~/.bashrc; make"并且关联了一切相关内容。 - over_optimistic
你可以把可工作的示例代码放到一个开源仓库上吗?比如github。谢谢。 - kravemir
我的雇主软件的源代码?不,我不能。 - 18446744073709551615

2

感谢您提供的Eclipse链接;它起作用了,但是Eclipse并不是编程的阳光:它会检测到一些“错误”(例如无法找到日志函数),这些对于编译器和链接器来说并不是问题,你必须手动删除错误消息才能运行代码。 - 18446744073709551615
你指的是哪个日志错误?至于粘性错误,是的,这就是Eclipse的设计。不过,这是Google建议并提供插件等(非NDK)环境,并且目前是最好的选择。 - NuSkooler
这不是日志记录错误;我将Android日志记录的调用定义为LOGD和DLOG宏(两个名称比记住哪一个更容易),每次打开C源文件时,Eclipse都会告诉我没有这样的函数(我不记得确切的名称,它很长),但代码编译和运行,并且该函数确实被调用,因为它有效。所以这是一个虚假的阳性反应。 - 18446744073709551615
这是一个关于虚假阳性和对抗黑暗(Eclipse)的链接:https://dev59.com/hmDVa4cB1Zd3GeqPcl2- - 18446744073709551615

0

Emacs就是你要找的。在emacs中编译,只需打开源文件,然后选择“工具-〉编译”。您可以将默认的编译命令从“gmake-k”更改为您想要的任何内容。对于您的情况来说,是特定的构建脚本。编译完成后,您可以单击错误,它将打开相应的源文件和行。

Emacs是一个完整的IDE,有许多插件可以添加功能。最好的是EDE(Emacs Dev Env)。不确定您使用哪个发行版,但Emacs肯定是它们所有标准包中的一个。


嗯... Emacs... 嗯... 有点玄学。有没有更直观的选择? - 18446744073709551615
1
也许吧,但2^64-1也是如此。我过去使用过kdevelop。它可以做你想要的事情。但我更喜欢emacs。如果你想要真正的奇特体验,尝试一下vim,它也可以满足你的需求。 - gogators
Emacs 最有趣的事情是,在命令行中 ~/android-ndk-r7/ndk-build clean all 会因为语法错误而失败,但在 Emacs 中它会在链接阶段失败。我不得不 cd /full/path/to/myProject/jni/ 来解决这个问题。 - 18446744073709551615
我使用Xemacs完成了这件事。配置按键以执行自定义功能非常容易,但UI很糟糕,从按钮上缺失的图标图像到无法将文本粘贴到搜索对话框中都有。在Linux下看起来像是一个Linux程序的Windows端口。但它确实让我快速地执行了最重要的重复操作。 - 18446744073709551615

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接