【发布时间】:2010-03-21 18:28:05
【问题描述】:
我刚在旅途中为我买了一台新笔记本电脑,然后在我的空闲时间,我开始通过尝试编译我自己的用 C++ 编写的操作系统来测试MinGW,然后我'我们已经创建了所有需要的文件和kernel.cpp:
extern "C" void _main(struct multiboot_data* mbd, unsigned int magic);
void _main( struct multiboot_data* mbd, unsigned int magic )
{
char * boot_loader_name =(char*) ((long*)mbd)[16];
/* Print a letter to screen to see everything is working: */
unsigned char *videoram = (unsigned char *) 0xb8000;
videoram[0] = 65; /* character 'A' */
videoram[1] = 0x07; /* forground, background color. */
}
并尝试用g++编译
G:> g++ -o C:\kernel.o -c kernel.cpp -Wall -Wextra -Werror -nostdlib -nostartfiles -nodefaultlibs
kernel.cpp:在函数“void _main(multiboot_data*, unsigned int)”中:
kernel.cpp:8:警告:未使用的变量“boot_loader_name”
kernel.cpp:在全局范围内:
kernel.cpp:4:警告:未使用的参数 'magic'G:>
但它不会在C:/> 处创建任何二进制文件。
我能做什么?
【问题讨论】:
-
为什么不尝试一个最简单的例子:1)在某处创建一个像
1.cpp这样的文件,其中只包含int main() {return 0;}(以及最后的空行); 2)在该文件夹中运行g++ -c 1.cpp -Wall;然后看看会发生什么?