正常情况下不可以,若是编译器支持的,编译时指定windows平台,也就是交叉编译。
编译器问题,gcc编译器识别的注释码是//,make编译器识别的注释码是#
gcc版本的问题 有些版本没有声明头文件的话,默认也是报错的 即hello.c里面没有声明max.h与min.h,建议使用更严谨的写法 也就是视频中有说的包含.h的方法
我的也是报错,如果include进来,就会像老师说的那样,出现了对max函数的二次定义,也会报错。有没有大佬 说下为什么 。
重写呗
set tabstop=4
你是说这里的-c嘛?预编译成二进制文件的意思。这个Makefile文件的编码规则是由make编译器而定的。主要是让make识别并并完成编译目标C文件。
不明白的是:老师的是gcc max.o min.o hello.c -o hello.out,hello.c中可以没有声明,编译也没问题,而我的则显示warning:隐式声明函数‘max.c’和‘min.c’
...........
退出方式不对,小问题
节约时间
you can drink anything you want after your work....
你的代码能传上来吗
一样啊,放到Linux当前目录下编译就行了,编辑器不同没关系,编译环境很重要!
不明白什么意思
这个就像你在 编辑器上打字为什么会显示一样,如果不显示的话,你就不确定你的输入是不是有问题,为了方便人机交互,所以进行了显示。
可以写多个啊,make时用 -f 参数指定以一个makefile就可以。
-c 参数表示将源文件编译成object(目标文件)。 即 gcc -c max.c 会编译成 max.o
gcc 不加参数时会编译且尝试链接成可执行文件,然而 max.c 的代码中没有main函数的定义,所以最终无法成功链接,故报错。
-c 参数是将源代码编译成“目标文件 .o”,后面多个目标文件可以链接成可执行文件。
不使用这个参数时gcc会直接进行 编译 链接,生成可执行文件。
你好,你看一下你是不是在workspace目录下或者其他目录下新建的MakeFile文件?需要在les2文件夹下新建的
你把完整的makefile贴上来吧
不能说只于C有关,本质上也与shell无关。
make本身的功能是:可以按文件的新旧日期、按照一定的规则(写于makefile中)来执行指定的操作,这些操作通常就是调用gcc来编译代码。当然你也可以写makefile来让make干别的事情。
这东西就是为了方便开发者,实际上有一系列GNU工具来干这些工作,它们统称为autotools,包括 autoconf, automake ...。这些工具可以按照机器上的开发环境设置相应的编译参数、自动生成相应的makefile、最后make一下就可以编译整个工程了。 可以说是干了IDE的活。
sudo apt-get upgrade make
临时文件