我是c编程语言的新手.我在centos linux系统下的同一目录下有以下文件.
game.c
game.h
main.c中
game.h
#ifndef GAME_
#define GAME_
extern void game (void);
#endif
Run Code Online (Sandbox Code Playgroud)
game.c
#include "game.h"
void game (void)
{
return 23;
}
Run Code Online (Sandbox Code Playgroud)
main.c中
#include "game.h"
int main (void)
{
game();
}
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令编译时..
gcc main.c
Run Code Online (Sandbox Code Playgroud)
我收到如下错误消息..
/tmp/ccwIlBKt.o:在功能
main': main.c:(.text+0x7): undefined reference to游戏'collect2:ld中返回1退出状态
链接我的头文件的正确方法是什么?
您需要编译并链接这两个程序.
首先编译并创建这样的目标文件
gcc -c game.c
gcc -c main.c
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样生成可执行文件
gcc game.o main.o -o myexe
Run Code Online (Sandbox Code Playgroud)
您可以使用这样包含库文件
gcc game.o main.o -o myexe -lsocket -wall
Run Code Online (Sandbox Code Playgroud)
这里lsocket是套接字库,并且在链接代码时使用-wall显示是否有任何警告