gcc-C语言中编写makefile遇到的问题

问题描述

C语言中编写makefile遇到的问题

自己在博客中写了由几个文件构成的代码,最后生成了一个静态库叫做libsum.a,里面保存着几个供main()
函数调用的函数,自己最后再把这个库和mian.c文件一起编译。可是makefile中一直报错
(具体的错误在博客最后面写出来了,我感觉不知道为什么?我用gcc -o 有问题吗?)
自己写的博客

感谢大家,感谢平台。

解决方案

gcc -o 就是指定输出文件名。

解决方案二:

make: *** No rule to make target `main.c', needed by `main'.  Stop.

错误代码显示makefile的规则问题,
makefile定义规则不正确,我的博文《Make自动化编译工具》也许有助力,专为你的问题写的。

解决方案三:

提示指明是 main 对应的规则有问题

解决方案四:

这样的报错还真是死性,正好对我胃口。

我的解决方法思路:

  • 将 main 规则修改成这样:main: libsum.a 就是拿掉main.c,因为错误提示就是加入这个依赖项产生的。
  • 注意一下GCC的命令行使用方法:Usage: gcc [options] file...你写的格式是倒过来的 GCC files... [options]
    使用共享库的正确的gcc命令行:
    gcc -L/home/wuguannan/c/lib -o /home/wuguannan/c/main /home/wuguannan/c/source/main.c -lsum
  • 将main规则定义提到makefile的最前面,因为这才是最终想的输出,应该前置。
时间: 2024-11-01 17:22:57

gcc-C语言中编写makefile遇到的问题的相关文章

VisuaC++6.0和MFC语言中编写一个像百度网盘的程序

问题描述 VisuaC++6.0和MFC语言中编写一个像百度网盘的程序 VisuaC++6.0和MFC语言中编写一个像百度网盘的程序,要怎么做?用到数据库的知识么?用到哪些? 解决方案 用sql server就是了,微软亲儿子.

Linux中gcc g++常用编译选项以及makefile的编写

Linux中gcc,g++常用编译选项 -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是. pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用.可以使用的参数有下面的这些: `c', `objective-c', `c-header', `c++', `cpp-output', `asse

《Linux C编程从入门到精通》一第2章 在Linux中编写C语言代码2.1 Linux中C语言程序开发流程和工具介绍

第2章 在Linux中编写C语言代码 Linux C编程从入门到精通 Linux作为一个操作系统,一项重要的功能就是要支持用户编程.传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强.易于移植的语言.Linux是用C语言写成的.反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc.调试工具gdb属于最早开发出来的一批自由软件.因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法. 2.1 Lin

《Linux C编程从入门到精通》——第 2 章 在Linux中编写C语言代码 2.1Linux中C语言程序开发流程和工具介绍

第 2 章 在Linux中编写C语言代码 Linux作为一个操作系统,一项重要的功能就是要支持用户编程.传统的UNIX下的程序开发语言是C语言,C语言是一种平台适应性强.易于移植的语言.Linux是用C语言写成的.反过来,Linux又为C语言提供了很好的支持,C语言编译工具gcc.调试工具gdb属于最早开发出来的一批自由软件.因此Linux与C语言形成了完美的结合,为用户提供了一个强大的编程环境,本章将介绍在Linux中编写C语言程序的流程和具体方法. 2.1 Linux中C语言程序开发流程和工

visual stu...-使用c++语言如何在visual studio 中编写可视化窗口程序

问题描述 使用c++语言如何在visual studio 中编写可视化窗口程序 使用c++语言如何在visual studio 中编写可视化窗口程序? 解决方案 就可以创建MFC 程序 剩下的就是代码实现功能的问题了 解决方案二: 最简单的已经使用MFC工程向导,你也可以手动写代码做Win32的基本程序结构. 解决方案三: 最简单的方法是用对话框当窗口用,在资源视图里可以创建对话框,代码里直接一句DialogBox()就行,对话框上可以直接托控件上去,非常方便.而且不用一些专门的软件,比如spy

eclips语言中怎么样编写五子棋游戏?eclips语言编写五子棋人机对战怎么做?

问题描述 eclips语言中怎么样编写五子棋游戏?eclips语言编写五子棋人机对战怎么做? eclips语言中怎么样编写五子棋游戏?eclips语言编写五子棋人机对战怎么做? 解决方案 http://blog.sina.com.cn/s/blog_6caeccff0100pq31.html

编程c语言-vs2013中编写c++程序能够调整cout的内容的字体大小么

问题描述 vs2013中编写c++程序能够调整cout的内容的字体大小么 10C vs2013中编写c++程序能够调整cout的内容的字体大小么如何做到呢? 解决方案 可以的,这种情况就相当于你是在命令行中输出的,所以直接通过cmd调整命令行的字体大小就行了,, 你可以添加头文件stdlib #include <stdlib.h> 然后用这行命令 system(""pause""); 等你程序运行到这一行的时候会停止,于是你右键弹出来的黑框框,然后再选项

使用GCC和GNU Binutils编写能在x86实模式运行的16位代码

使用GCC和GNU Binutils编写能在x86实模式运行的16位代码 不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解GCC生成16位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在x86实模式下运行的16位代码,这个话题确实有点复古,所以能找到的资料也相应较少.要运行x86实模式的程序,目 前我知道的只有两种方式,一种是使用DOS系统,另一种是把它写成引导扇区的代码,在系统启动时直接运行.很显然,许多讲自己实现操作系统的书籍都会讲到

教会你如何编写makefile文件

  最近一直在学习makefile是如何编写的.当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件. makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大.   下面通过实例一步步讲解如何使用makefile.下面的四段代码.   //main.cpp #include "functions.h" i