我有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可执行文件。

10-07 21:56