cco*_*gli 0 c compilation header
我想编写一个快速访问的C库,只包含头文件而不使用编译库.为此,我已将我的代码直接包含在我的头文件中.
头文件包含:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifndef INC_TEST_H_
#define INC_TEST_H_
void test(){
printf("hello\n");
}
#endif
Run Code Online (Sandbox Code Playgroud)
我的程序没有编译,因为我有多个函数引用test()
.如果我有一个正确的源文件与我的标题,它的工作没有错误.
是否可以通过在C应用程序中包含代码来仅使用头文件?
在头文件中包含代码通常是一个非常糟糕的主意.
如果您有"file1.c"和"file2.c",并且在每个中都包含"编码.h",那么在编译的链接部分,将有2个具有全局范围的测试函数(一个在file1.c和file2.c中的另一个).
你可以使用"静态"这个词,以便说明该函数仅限于包含"编码.h"的.c中,但是再次,这是一个坏主意.
至少但不是最后一个:你打算如何在没有.so/.a文件的情况下创建一个库?这不是库,这是您项目中直接复制/过去的代码.
当你的"库"中出现错误时,除了纠正你的代码,在每个项目中重新发布它并重新编译每个项目,你都没有任何解决方案,错过了动态库的重点:"正确"纠正的能力图书馆没有触及每个使用它的程序.
归档时间: |
|
查看次数: |
611 次 |
最近记录: |