【问题标题】:Ruby kernel commandsRuby 内核命令
【发布时间】:2011-03-23 13:40:43
【问题描述】:

我正在尝试在 irb 中执行以下命令,

执行“gcc j.cpp”

但是,我收到以下错误:

/tmp/ccYhafBj.o:在函数“主”中: j.cpp:(.text+0x14): 未定义对 `std::cout' 的引用 j.cpp:(.text+0x19): 未定义引用`std::basic_ostream >& std::operator >(std::basic_ostream >&, char const*)' /tmp/ccYhafBj.o:在函数“__static_initialization_and_destruction_0(int, int)”中: j.cpp:(.text+0x41): 未定义引用`std::ios_base::Init::Init()' j.cpp:(.text+0x46): 未定义引用`std::ios_base::Init::~Init()' /tmp/ccYhafBj.o:(.eh_frame+0x12): 对 `__gxx_personality_v0' 的未定义引用 collect2: ld 返回 1 个退出状态

我的文件位于我打开 irb --simple-prompt 以运行该文件的同一目录中。我的文件内容是:

#include <iostream>
using namespace std;
int main()
{    cout << "Hello World";
    return 0;
}

谁能告诉我哪里错了,以及解决问题的方法。我想要的只是运行 j.cpp 文件并获取过程中出现的输出/错误。

【问题讨论】:

    标签: ruby gcc


    【解决方案1】:

    使用 C++ 编译器,而不是 C 编译器。

    exec 'g++ j.cpp'
    

    exec 将替换当前进程,因此您可能希望使用反引号。

    output = `g++ j.cpp -o "prog" && ./prog`
    

    输出文件被专门命名为“prog”,以便更清楚地了解我们正在执行的内容。

    【讨论】:

    • - 谢谢。我真傻。既然已经解决了,能不能帮我看看编译过程中遇到的输出/错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2018-12-11
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多