如何快速测试C或C++代码片段?

9
我正在使用Ubuntu和Eclipse作为C/C++的IDE。
我目前在Eclipse中有一个大项目。有时候,我想测试一些用C/C++编写的小函数,但我不想在Eclipse中重新创建一个新项目。这样耗费时间且速度慢。请问是否有更好的方法?
(过去,我通常使用shell中的GEDIT和GCC组合,但我真的很喜欢Eclipse中的自动完成或智能感知功能,而GEDIT没有。我也尝试过Scribes,但它没有像Eclipse那样完整的智能感知功能)

3
在同时进行的项目中,只有一个普通的沙盒项目有什么问题吗?我经常打开一个只有一个main.cpp文件的沙盒项目并放在我的主项目旁边。 - KillianDS
在Eclipse中切换项目和项目并不方便,特别是当一个项目的文件数量变得很大时。这就是为什么我想使用另一种工具来解决这个问题。 - user188276
2
@tsubasa:为什么不同时运行两个独立的Eclipse实例? - TMN
5个回答

13

使用在线编译器,例如IdeoneCodepad
当然,它们不提供自动代码完成功能和其他花哨的功能,但这是为了快速、简便地检查独立函数所付出的代价。


1
哇,甚至有人找到了一个给这个投票踩一下的理由! :) 我想知道是什么? - Alok Save
@tsubasa:你读过答案吗?我明确提到它不会自动完成,甚至还说明了原因。 - Alok Save
1
是的,我的评论是赞同您的意见,所以我已经阅读了答案。 - user188276
我也很想知道为什么会被踩。偶尔,我们(包括我在内)会因为没有明显的原因而被踩。 - Sebastian Mach

7
这种方法可以在没有网络连接的情况下进行操作,而且不会使您的代码暴露。
<ctrl>+<alt>+T                        <-- 0) opens a terminal

vi test.cc                            <-- 1) hackery
...
g++ -Wall -Wextra test.cc && ./a.out  <-- 2) compile + run
rm test.cc                            <-- 3) clean up (optional)

vi替换为您喜欢的编辑器或cat。不会更加突兀。

一些编辑器(如SciTE)具有一些非常基本的代码完成功能(顺便说一下:SciTE具有直接从编辑器中编译和运行代码的快捷方式)。

顺便说一下:QtCreator提供了一些不错的“智能感知”功能,并且项目文件很小。对于这种单一功能测试,一个项目文件行就足够了。


unkulunkulu指出,您还可以像这样替换步骤2(在您的尝试文件夹中最好没有Makefile;可能会与现有目标发生冲突):

<ctrl>+<alt>+T                  <-- 0) opens a terminal

vi test.cc                      <-- 1) hackery
...
make test && test               <-- 2) compile + run
rm test.cc                      <-- 3) clean up (optional)

这有一个微小的缺点,就是告诉g++有关额外参数(例如-Wall-std=c++0x)有点显眼。


我使用make test而不是g++ test.cc - unkulunkulu
@unkulunkulu: test.cc只是一些想要测试小代码片段的函数的示例名称。它也可以是foo.ccsdfkljsdlfkjsdklfj.cc。我的回答与单元测试无关;) - Sebastian Mach
1
在这种情况下,我会使用 make foomake sdfkljsdlfkjsdklfj。由于默认的隐式规则,它可以在没有 makefile 的情况下工作。 - unkulunkulu
@unkulunkulu:我明白了,我之前不知道这个。非常酷。我的错误观察是基于许多项目使用“make test”来运行其自动测试程序,我以为你指的是那个。+1 :) - Sebastian Mach

1
我建议您使用带有嵌入式终端插件的gedit。它允许通过嵌入式终端快速编译,非常适合快速测试。

1

你可以使用tcc作为C脚本引擎。

$ cat tcctest.c

#!/usr/bin/tcc -run #include int main(void) { printf("你好,tcc!\n"); return 0; }
$ chmod u+x tcctest.c
$ ./tcctest.c

你好,tcc!

@phresnel:如果tsubasa正在编写多语言源文件,我猜测试小函数可能是他最不用担心的事情。 - pmg

0

http://www.compileonline.com 我发现this网站比ideone或codepad更有用,因为它支持比codepad更多的编程语言,而且你可以在相邻的窗口中看到代码的输出。你还可以提供标准输入和命令行参数,并且在程序中访问一个文件input.txt。

CompileOnlineScreenShot


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