【问题标题】:how to test C or C++ snippet quickly?如何快速测试 C 或 C++ 片段?
【发布时间】:2011-10-12 12:34:21
【问题描述】:

我使用 Ubuntu 和 Eclipse 作为 C/C++ 的 IDE。

我目前在 Eclipse 中有一个大项目。有时,我想测试一些用 C/C++ 编写的小函数,但我不想在 Eclipse 中重新创建一个新项目。这是非常耗时且缓慢的。请问有没有更好的办法?

(过去,我通常在 shell 中使用 GEDIT 和 GCC 的组合,但我真的很喜欢 Eclipse 中 GEDIT 没有的自动完成或智能感知功能。我也尝试过 Scribes,但它没有具有完整的智能感知功能,如 Eclipse)

【问题讨论】:

  • 只有一个普通沙盒项目并行有什么问题?我的主项目旁边经常只打开一个 main.cpp。
  • 在Eclipse中项目和项目之间切换不方便,尤其是当项目文件数量很大时等。这就是为什么我想使用不同的工具。
  • @tsubasa:为什么不运行两个单独的 Eclipse 实例?

标签: c++ c compiler-construction editor code-snippets


【解决方案1】:

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

【讨论】:

  • 哇,有人甚至设法找到了拒绝投票的理由! :) 我想知道它可能是什么?
  • @tsubasa:你读过答案吗?我明确提到它不会自动完成,甚至是它的原因。
  • 是的,我的评论是对你的同意,所以我确实阅读了答案。
  • 我也会对拒绝投票的原因感兴趣。有时,我(以及我们所有人,我认为)会无缘无故地被否决。
【解决方案2】:

此方法无需 Internet 连接且不会暴露您的代码。

<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;可能与其中的现有目标冲突 em>):

<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:test.cc 只是您想要测试小代码-sn-p 的某些函数的示例名称。它可能是同样有效的foo.ccsdfkljsdlfkjsdklfj.cc。我的回答与单元测试无关;)
  • 在提供的情况下,我会使用make foomake sdfkljsdlfkjsdklfj。由于默认的隐式规则,它无需生成文件即可工作。
  • @unkulunkulu:我明白了,我没有意识到这一点。很酷。然后我的错误观察是基于许多项目使用make test 来运行他们的自动测试程序的事实,我认为你会提到这一点。 +1 :)
【解决方案3】:

我会建议您将 gedit 与嵌入式终端插件一起使用。它允许通过嵌入式终端快速编译。非常适合快速测试。

【讨论】:

    【解决方案4】:

    您可以将tcc 用作C 脚本引擎。

    $ cat tcctest.c
    
    #!/usr/bin/tcc -运行 #include 诠释主要(无效){ printf("你好,tcc!\n"); 返回0; }
    $ chmod u+x tcctest.c
    $ ./tcctest.c
    
    你好,tcc!

    【讨论】:

    • @phresnel: 如果tsubasa 正在编写多语言源文件,我想测试小函数是他最不担心的。
    【解决方案5】:

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

    【讨论】:

      猜你喜欢
      • 2015-08-20
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 2017-02-05
      相关资源
      最近更新 更多