我有第二级包括让我感到悲伤:
Undefined first referenced
symbol in file
function2 /var/tmp//ccAPaWbT.o
ld: fatal: symbol referencing errors. No output written to run
collect2: ld returned 1 exit status
主文件:
#include "functions02.c"
int main(){
int x = funcion2();
}
函数02.c 文件:
#ifndef FUNCTIONS02_C
#define FUNCTIONS02_C
int funcion2();
#if __INCLUDE_LEVEL__ == 0
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include "functions01.c"
int main() {
return function2();
}
#endif
int function2()
return function1();
}
#endif
函数01.c 文件:
#ifndef FUNCTIONS01_C
#define FUNCTIONS01_C
int funcion1();
#if __INCLUDE_LEVEL__ == 0
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
int main() {
return function1();
}
#endif
int function1()
return 10;
}
#endif
我假设这可以__INCLUDE_LEVEL__
在编译时使用或操作链接来修复,gcc
但我找不到分叉变体。
首先,是否可以在不将函数放入外部头文件的情况下实现我正在寻找的东西?其次,正确的做法是什么?
编辑: 我意识到我忘记向它们添加函数依赖项。也就是说,如果关闭,函数使用的包含不能通过将它们添加到主函数旁边而被排除在排除中。