有两个类,每个类都会使用一个函数:
的main.cpp
#include "class1.h"
#include "class2.h"
int main()
{
...
}
class1.h
#ifndef class1_h
#define class1_h
class class1
{
...
}
#endif
class1.cpp
#include "class1.h"
#include "func.h"
...
class2.h
#ifndef class2_h
#define class2_h
class class2
{
...
}
#endif
class2.cpp
#include "class2.h"
#include "func.h"
...
func.h
#ifndef func_h
#define func_h
int function(int)
{
...
}
#endif
但上面的代码会导致链接器错误:“apple Mach-O链接器命令失败,退出代码为1”
#ifndef
中的func.h
是否适用于不同的目标文件,或仅适用于单个目标文件?
在链接class1.o
和class2.o
后,function
是否定义了两次?