C或C++外部调用函数解决思路
C或C++外部调用函数
main.c 和max.c两个文件
main.c代码如下
max.c代码如下
如果将两个文件添加到同一个工程中,可以运行。但是能不能将它们分别编译后执行啊?
我用mingw用gcc -c max.c命令将max.c编译成max.o文件,用gcc -c main.c将main.c也编译成main.o文件,但是下面就不行了,main.c没办法生成可执行文件,underfined reference to 'max'。。。
这个错误是不是因为没有#include <max.h>啊?还是根本不能这样做?不是太懂这里面的原理,希望可以帮我解决这个问题并科普一下
------解决思路----------------------
mian中找不到max函数,max函数声明一个放到max.h,main文件包含max.h
------解决思路----------------------
gcc编译的时候写清楚文件依赖关系就可以的,比如
gcc -o main main.o max.o
------解决思路----------------------
1. 创建一个max.h文件
2. #include <stdio.h>
3. int max( int x, int y);
保存。
max.c和main.c中增加#include"max.h"
------解决思路----------------------
文件 1
文件 2
main.c 和max.c两个文件
main.c代码如下
#include <stdio.h>
int main()
{
extern int max (int ,int );
int a,b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d",max(a,b));
return 0;
}
max.c代码如下
int max( int x, int y)
{
int z;
z=x>y?x:y;
return z;
}
如果将两个文件添加到同一个工程中,可以运行。但是能不能将它们分别编译后执行啊?
我用mingw用gcc -c max.c命令将max.c编译成max.o文件,用gcc -c main.c将main.c也编译成main.o文件,但是下面就不行了,main.c没办法生成可执行文件,underfined reference to 'max'。。。
这个错误是不是因为没有#include <max.h>啊?还是根本不能这样做?不是太懂这里面的原理,希望可以帮我解决这个问题并科普一下
------解决思路----------------------
mian中找不到max函数,max函数声明一个放到max.h,main文件包含max.h
------解决思路----------------------
gcc编译的时候写清楚文件依赖关系就可以的,比如
gcc -o main main.o max.o
------解决思路----------------------
1. 创建一个max.h文件
2. #include <stdio.h>
3. int max( int x, int y);
保存。
max.c和main.c中增加#include"max.h"
------解决思路----------------------
文件 1
#include<stdio.h>
void myprint()
{
printf("this is my lib!\n");
}
文件 2
/*************************************************************************
> File Name: main.c
> Author: jukay
> Mail: hellojukay@163.com
> Created Time: 2014年12月23日 星期二 20时02分14秒
************************************************************************/
#include<stdio.h>
#include"mylib.h"
int main()
{
myprint();
return 0;
}
sudo gcc main.c
jukay@jukay-desktop:/pragram/p8$ ./a.out
this is my lib!jukay
@jukay-desktop:/pragrame/p8$