Ruby 内核命令

Posted

技术标签:

【中文标题】Ruby 内核命令【英文标题】:Ruby kernel commands 【发布时间】: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 文件并获取过程中出现的输出/错误。

【问题讨论】:

【参考方案1】:

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

exec 'g++ j.cpp'

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

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

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

【讨论】:

- 谢谢。我真傻。既然已经解决了,能不能帮我看看编译过程中遇到的输出/错误。

以上是关于Ruby 内核命令的主要内容,如果未能解决你的问题,请参考以下文章

ruby Vagrant设置 - 使用所有CPU内核和1/4系统内存

查看内核中字符设备和块设备信息用啥命令

linux命令:kernel内核模块管理编译/screen

#26 Linux kernel(内核)详解与unamelsmodmodinfodepmodinsmodrmmodmodprobe...命令用法

uboot启动内核的相关命令详解——bootbootm

Linux 内核进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )