我有main.c,snmpy.c,snmpy.o和一个makefile我通过命令行在Linux服务器上运行这个这是他们所有的。。。
主要c:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "snmpy.h"
int main(void) {
char* message = sayHello();
printf("%s", message);
return 0;
}
snmpy.c.:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "snmpy.h"
char* sayHello(){
char* hiya = "Hello!!\n";
return hiya;
}
小号h:
char* sayHello();
生成文件:
# Compiler
CC = /usr/bin/gcc
# Name of program
PROG = snmpy
# The name of the object files
OBJS = snmpy.o main.o
# All the header and c files
SRCS = main.c snmpy.c
HDRS = snmpy.h
# Add -I to the dir the curl include files are in
CFLAGS = -c -g -std=c99 -Wall
# Build the executable file
$(PROG): $(OBJS)
$(CC) $(CFLAGS) $(OBJS) -o $(PROG)
# Seperately compile each .c file
main.o: main.c snmpy.h
$(CC) $(CFLAGS) -c main.c
snmpy.o: snmpy.c snmpy.h
$(CC) $(CFLAGS) -c snmpy.c
# Clean up crew
clean:
rm -fv core* $(PROG) $(OBJS)
cleaner: clean
rm -fv #* *~
当我编译它时,它会给我这个错误:
/usr/bin/gcc -c -g -std=c99 -Wall snmpy.o main.o -o snmpy
gcc: snmpy.o: linker input file unused because linking not done
gcc: main.o: linker input file unused because linking not done
不知道发生了什么事,是否有我做的不对,或如果我没有安装的东西我不擅长做档案我已经有一段时间没做了。
提前谢谢!!
最佳答案
重新:
/usr/bin/gcc -c -g -std=c99 -Wall snmpy.o main.o -o snmpy
命令中的
-c
选项表示编译(但不链接)。结果将是.o
(对象)文件。尝试不使用
-c
的命令,它应该链接并创建snmpy
可执行文件。