【发布时间】:2017-05-06 23:14:15
【问题描述】:
我是 C 新手。
我已将我的排序程序分成三个 .c 文件 compare_functions.c、insertion_sort.c 和 main.c,其中包括这两个文件。
为了获取可执行文件,我尝试了以下操作:(仅当前文件夹中的相关文件)
gcc -c insertion_sort.c compare_functions.c main.c
gcc *.o -o main.out
除了compare_functions.h、insertion_sort.h这两个头文件,文件夹里最后还有九个文件,在ls之后:
compare_functions.c insertion_sort.c main.c
compare_functions.h insertion_sort.h main.o
compare_functions.o insertion_sort.o main.out
最后./main.out 工作正常但是,比如说,如果我有一个更大的程序(即一百个 .c 文件),最后会有 100*3 文件的混乱,就是上面描述的方式还合适吗?
【问题讨论】:
-
不太清楚你在问什么。如果您有一个大型程序,它很可能有数百个代码文件。为什么会有这样的问题?
-
你使用
make file -
我将此标记为对应 C++ 问题的副本,但从答案到重复问题的所有内容也适用于 C。
-
您概述的内容是构建程序需要多个文件的结果。您可能会发现文件可以分组到您在单独目录中编译的库中——将源代码保存在单独的目录中,并且可能将头文件保存在“包含”目录中——这可以减少每个目录的混乱。使用静态库,您有时可以避免在构建库后保留所有目标文件。这似乎不是共享库的选项。
-
@olegst 我认为在项目变得太大而无法管理之前立即使用构建工具是有好处的。越早了解 make/cmake/automake/etc,他的生活就会变得越轻松。