当前位置:  技术问答>linux和unix

Linux Makefile写法及问题程序说明

    来源: 互联网  发布时间:2016-11-26

    本文导语:  问题描述: 源文件: main.cpp: 主程序,包含dictionary.h dictionary.h:字典类实现,包含hashset.h和hashset.cpp(hashset用模板,所以也包含.cpp) hashset.cpp hashset.h:模板实现hash类 $vi Makefile mainapp:hashset.o dictionary.o         g++ ha...

问题描述:
源文件:
main.cpp: 主程序,包含dictionary.h
dictionary.h:字典类实现,包含hashset.h和hashset.cpp(hashset用模板,所以也包含.cpp)
hashset.cpp hashset.h:模板实现hash类

$vi Makefile
mainapp:hashset.o dictionary.o
        g++ hashset.o dictionary.o -o mainapp
hashset.o:hashset.h
        g++ -g -c hashset.cpp hashset.h -o hashset.o
dictionary.o:dictionary.h
        g++ -g -c dictionary.h -o dictionary.o
clean:
        rm -rf *.o mainapp

$make 后错误提示为:    
g++ hashset.o dictionary.o -o mainapp
hashset.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make: *** [mainapp] Error 1                        

直接用g++ 编译连接 $ g++ -g -o main main.cpp dictionary.h hashset.h ,会提示找不到dictionary类对象相关的错误。
希望高人给于指导意见!

|
首先我已经很久没碰过C++了,很多语法问题我都忘了。
记得模板是要放到.h文件中。
下面说说我的使用makefile的经验:
对应的.h有对应的.c(或.cpp,下面省略),编译直接使用.c文件不用.h。
你编译时提示:
g++ hashset.o dictionary.o -o mainapp
hashset.o: file not recognized: File format not recognized
是说hashset.o文件格式不能被识别。不过我试过,g++可以编译(或许不能叫“编译”).o文件。

对于模板,我没试过。
对于前面错误的观点,还请见谅。

|
g++ hashset.o dictionary.o -o mainapp
-->让编译器编译.o文件,不行啊。
$ g++ -g -o main main.cpp dictionary.h hashset.h 
-->你的实现文件呢?只有一个main.cpp?其它的呢?

PS:编译多个源文件时,可直接写实现文件,即.c或.cpp文件,.h就不要了。

|

$vi Makefile
mainapp:hashset.o
  g++ hashset.o -o mainapp
hashset.o:
  g++ -g -c hashset.cpp -o hashset.o
clean:
  rm -rf *.o mainapp


dictionary.h
不用生成.o了

    
 
 

您可能感兴趣的文章:

  • windows与linux 路径正则写法
  • Linux下的批处理文件是否和Windows下的写法相同呀?
  • linux新手提问, .sh文件的写法提问。 从.bat文件转为.sh文件。
  • linux 中makefile写法
  • linux循环日志监控脚本的写法
  • linux automake时makefile.am的写法···极度困惑中
  • windows与linux伪静态规则写法
  • linux 关于命令写法的疑问
  • 最近在学习linux C 看到了makefile部分,觉得makefile的语法很难理解,Makefile 的语法是不是shell语法?
  • linux makefile error :Makefile:335: *** commands commence before first target。
  • win32下编译Linux 下的项目(makefile.am和makefile.in)
  • linux中makefile大小写问题
  • 关于linux2.6的makefile
  • 求助:makefile,驱动与linux内核的关系?
  • linux下面用makefile编译的问题,请高手指点。
  • linux 安装问题make: *** 没有指明目标并且找不到makefile。 停止
  • 菜鸟问题:linux下的makefile...
  • makefile 中定义的 -D_LINUX_和 LINUX有区别吗?
  • linux源代码中的makefile
  • 请问linux下的make和makefile指令有什么用?
  • 谁有关于unix和linux下的makefile文件的资料?
  • 刚接触Linux,makefile一个弱智问题
  • linux 下的makefile问题
  • 请教:linux unix 下makefile的问题
  • linux下安装ipmsg,提示没有Makefile,该怎么办?
  • 运用linux的自动生成Makefile文件时,出现错误
  • 寻找linux_memory_management, Linux_TCPIP_programming.rar, Makefile_write.rar
  • 高手请进:linux下使用.o文件,makefile文件的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明
  • 关于LINUX下的各种配置,正式的说明文档一般在什么地方?
  • linux top命令详解以及top命令的各项使用技巧详细说明
  • 谁有linux下网络开发函数的说明?要再window下也可以看的!
  • linux下find查找文件命令详细介绍及find文件用法举例说明
  • 请问哪有 arm-linux-nm, arm-linux-addr2line等等这些工具的使用说明~~~
  • linux channel bonding 说明文档
  • 求详细linux(redhed9)上安装oracle9i的说明书?
  • 100分,新手求Linux下的API说明
  • 请问哪里有linux的指令函数说明
  • 寻求Socket Linux平台的API大全,包含参数说明的。
  • 我想装一个LINUX当路由器,大家有详细的安装配置说明吗?
  • 谁有linux下c函数说明,最好是中文版。
  • 有哪个文档详细说明linux内核的每个版本的变化?
  • 红帽Linux企业版.5rhel-5-server-i386光盘说明
  • linux 下 mysql 启动参数说明
  • 以下提示信息是否说明linux中打补丁已经成功?谢谢
  • php $_SERVER windows系统与linux系统下的区别说明
  • ****请问谁有linux下c 语言函数的使用说明呀??要中文的!!!****
  • 哪位结合原码说明下Linux内核开发人员是如何处心积虑的提高效率的
  • 如何在linux中查到编程函数的说明,如同在windows中使用MSDN一样方便的手册?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3