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

★★★ 简单问题:如何使用MAKEFILE 在LINUX编译VC代码? ★★★

    来源: 互联网  发布时间:2015-03-25

    本文导语:  初次接触LINUX,请指教: 创建一个名字为test的win32 consile application VC程序 增加一个名字为file1.cpp文件(简单地写一个函数,在MAIN中调用) 把上面的工程复制到RED HAT 7.2 (homelys) 中 请问,如何使用makefile使得上面...

初次接触LINUX,请指教:

创建一个名字为test的win32 consile application VC程序
增加一个名字为file1.cpp文件(简单地写一个函数,在MAIN中调用)

把上面的工程复制到RED HAT 7.2 (homelys) 中
请问,如何使用makefile使得上面的VC程序可以在LINUX下编译执行?

刚开始接触,提问不专业的地方,请见谅,可能的话,请说详细些,十分感谢...

|
只有一个文件吗?

可以直接用g++:
g++ -o file1 file1.cpp

-o是指定生成文件的文件名。

如果有多个文件,想编Makefile,用以下格式:
file1:file1_1.cpp file1_2.cpp file1_3.cpp
(跳格键Tab,不能用空格代替)g++ -o file1 file1_1.cpp file1_2.cpp file1_3.cpp

更多的使用方法可以参考下文:

在开发大系统时,经常要将程序划分为许多模块.各个模块之间存在着各种各样的依赖关系,在 UNIX 中通常使用 Makefile来管理 .Makefile其实很复杂,我向大家推荐由Stallman写的手册,那里有最详尽的描述.这里只想说一些最常用的功能. 

先举一个例子: 
有a.c b.c两个程序. 
a.c 
extern void p(char *); 
main() 

p("hello world"); 


b.c 
#include 
void p(char *str) 

printf("%sn",str); 


Makefile 
hello:a.c b.c 
gcc a.c b.c -o hello 
---- 
这里是一个Tab(注意一定要有一个Tab) 

执行make 
gcc a.c b.c -o hello 
产生一个叫hello的可执行程序. 

Makefile时由规则来组成的,每一条规则都有三部分组成:目标(object),依赖(dependency)和命令(command).在上面的例子中, Makefile只有一条规则,其目标为hello,期依赖为a.c b.c,其命令为gcc a.c b.c -o hello. 

依赖可以是另一条规则的目标,也可以是文件.每一条规则被这样处理.如目标是一个文件是:当它的依赖是文件时,如果依赖的时间比目标要新, 则运行规则所包含的命令来更新目标; 如果依赖是另一个目标则用同样的方法先来处理这个目标.如目标不是一个存在的文件时,则一定执行. 

例如: 
Makefile 
hello:a.c b.o 
gcc a.c b.o -o hello 
b.o:b.c 
gcc b.c -c 

当运行 make时,可以接一目标名作为参数,表示要处理改目标.如没有参数,则处理第一个目标.对上一个例子执行 make ,则是处理hello这个目标. hello依赖于文件a.c和另一个目标 b.o,则先去处理b.o,调用gcc b.c -c来更新b.o,之后返回,调用gcc a.c b.o -o hello 来更新hello. 

定义变量: 
在makefile中可以定义自己的变量,例如: 
CC = gcc 
hello:a.c b.c 
$(CC) a.c b.c 

特殊变量: 
$@ 目标的名字 
$

    
 
 

您可能感兴趣的文章:

  • 关于arm交叉编译器4.3.3编译程序报错,但是3.4.5却能编译通过的问题
  • 关于EJB编译问题?(带的编译问题)
  • 编译问题,引用了别人的一个库,结果编译出问题。
  • eclipse 的c编译器编译问题
  • 关于在linux交叉编译powerpc-e300c3-linux-gcc的编译问题
  • 这个宏cc编译正常, pro*c 编译出问题,有办法解决吗?
  • 请教关于用c编译出来的.a文件和用c++编译出来的.a文件的互用问题
  • 在linux+x86下用交叉编译器编译出能在solaris+x86运行的文件时遇到的问题
  • 菜鸟问题: redhat linux 编译一个最简单的c程序, 其中包含了<studio.h>头文件,但在gcc编译时,提示找不到studio.h文件,请问各位大大
  • 如果重新编译了.so文件后,但程序运行结果还是编译前的情况,大概是什么问题呢?
  • [菜鸟问题]简单的编译问题(我怎么编译不通过阿!)
  • JB的源文件在JB中可以编译,改用JDK编译,遇到一些问题,解决马上给分100!
  • 菜鸟问题:javabean的编译问题。
  • 问题来了,内核编译.
  • 请问一个关于gcc编译的问题
  • linux下面用makefile编译的问题,请高手指点。
  • Tag问题==TEI文件编译后放在webapps下么,但不好使?==Tag问题
  • 交叉编译问题
  • linux下交叉编译的问题
  • KDeveloper的编译问题
  • 求解makefile问题,makefile.conf的作用?
  • 请教根据Makefile.am自动生成Makefile的问题
  • Makefile使用遇到的问题!"Makefile:3:missing the separator.stop"在线等待.......
  • 关于makefile的问题。一个makefile如何生成两个可执行文件。
  • 亟待解决的问题!Makefile问题
  • 关于makefile文件的问题
  • makefile include的问题
  • linux中makefile大小写问题
  • 关于多层Makefile编译的问题
  • 初写MAKEFILE遇到问题,麻烦大家帮忙。
  • 多个Makefile合并的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sh 里面ftp上传文件的代码。大侠帮忙看看下面的代码有什么问题
  • 用Jbuilder3 遇到问题不能运行把可疑代码注掉后可以运行但是重新使用可疑代码时又可以运行了多次重复都是如此
  • 关于软件或者程序的源代码问题??
  • firefox源代码问题
  • linux 源代码的学习问题
  • 关于源代码的问题
  • 菜鸟问题(源代码)
  • VIM的使用,代码缩进的问题
  • 关于Qt的demo中的控件代码问题
  • 求教:linux下代码编辑问题
  • fedora10 内核代码问题
  • X Window System 的源代码的问题
  • 在制作的留言簿上提交jsp的源代码的问题,
  • 代码实现Radius服务模拟的问题,熟悉Radius服务的大虾请进!
  • 请教一下调试GCC源代码问题
  • cvs 代码维护问题
  • 关于linux内核版本和源代码版本问题
  • 高深问题:有了linux内核源代码如何做成一个linux操作系统
  • 在Jbuilder中编辑代码的问题
  • 谁有“八女王”和“六匹马”问题的源代码,每个50分!!!!
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 简单问题简单问题简单问题简单问题
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明


  • 站内导航:


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

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

    浙ICP备11055608号-3