请教多文件夹makefile问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教多文件夹makefile问题相关的知识,希望对你有一定的参考价值。
一般来讲,一个项目会有多个模块,源文件分别放在不同的目录文件夹中。这时候,Makefile就需要遍历不同目录下的C程序源文件,然后分别编译成目标文件、然后再链接成可执行程序。
更深入的教程,可以参考Makefile工程实践视频教程,里面对源文件、目标文件、库分别使用目录进行管理,存放在不同的文件目录下,如何编写Makefile实现上面的目的。 参考技术A 在有.C文件的文件夹里都有makefile的存在,makefile的作用就是控制编译流程。
uboot源码的根目录下就有一个makefile文件。如果你想学习uboot,可以先看board目录里的makefile文件,这个文件告诉你电路板上电后,哪个函数先被执行。
请教简单的C++多文件连接问题(请针对问题对答,谢谢!)
//文件1是头文件
int Fabricate(int,int);
int Multi(int,int);
//文件2放一个函数Fabricate
int Fabricate(int m,int n)
return Multi(m,m-n+1)/Multi(n,1);
//文件3放一个函数Multi
int Multi(int m,int n)
int i,s=1;
for(i=m;i>=n;i--)
s*=i;
return s;
//文件4放main
#include<iostream.h>
#include"myheadfile.h"
using namespace std;
void main()
int m,n;
cout<<"请输入m";
cin>>m;cout<<endl;
cout<<"请输入n";
cin>>n;
cout<<endl<<"组合数为:"<<Fabricate(m,n);
我将四个文件的内容放在一个文件里编译成功,可是分成多个文件放在一个工程里连接时出现错误:
d:\program files\vc98\myprojects\123\fabricate.cpp(3):error C2065: 'Multi' : undeclared identifier
错误指向return Multi(m,m-n+1)/Multi(n,1); 这一行
请问是怎么回事?
谢谢!
------------------------------------------------------
在文件2中加了#include"myheadfile.h" 后反而出现两个错误:
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/123.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
是怎么回事呢,真搞不懂
至于选了win32 Application的话,在Project -> Setting -> C++ -> Project Option中找到"_WINDOWS",删掉,或者改成"_CONSOLE"。 参考技术A 你需要在文件2中也加入一行
#include"myheadfile.h" 参考技术B \fabricate.cpp里面没有包含头文件,把头文件加进去 #include"myheadfile.h" 还要声明
别跟我说你选了win32 Application? 不然怎么会有winmain做入口? 参考技术C 哇‘‘看不懂也 ‘但还是要冒个泡
以上是关于请教多文件夹makefile问题的主要内容,如果未能解决你的问题,请参考以下文章