我有一个编译的C文件,名为Hello.o。在Hello.o中: 我有一个主要功能 和一个名为int myfunc()的函数。
我想知道我是否要创建一个包含main函数的新文件hello2.c,并在hello2.c的顶部声明myfunc, 我能编译hello2.c并使用gcc命令将hello.o链接到它吗?
提前全部谢谢。
答案 0 :(得分:0)
如果你想在hello2.c中使用myfunc(),可以尝试使用gcc.Declare头文件Hello.h中的函数链接两个对象文件,并将其包含在hello2.c中并生成Hello.o和hello2.c之前将它们链接在一起 $ gcc -o输出Hello.o hello2.o
我认为这应该可以帮到你
How do I link object files in C? Fails with "Undefined symbols for architecture x86_64"
答案 1 :(得分:0)
目标文件完全链接,或根本不链接。所以这不起作用。
GCC将命令行中指定的所有文件添加为二进制文件.o。然后使用库(.a)来查找所需的符号。
如果存在重复的符号,则会报告错误。 (它不知道哪个主要)。
如果库包含多个.o文件,则可以忽略不需要的.O文件。这些可能与二进制文件重复。