【问题标题】:C: An alternative(better) way to compile files? [duplicate]C:编译文件的另一种(更好的)方法? [复制]
【发布时间】:2017-05-06 23:14:15
【问题描述】:

我是 C 新手。

我已将我的排序程序分成三个 .c 文件 compare_functions.cinsertion_sort.cmain.c,其中包括这两个文件。

为了获取可执行文件,我尝试了以下操作:(仅当前文件夹中的相关文件)

gcc -c insertion_sort.c compare_functions.c main.c
gcc *.o -o main.out

除了compare_functions.hinsertion_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,他的生活就会变得越轻松。

标签: c gcc


【解决方案1】:

如果您有很多源文件要编译,您可能需要检查AutomakeCMake 等工具。他们将负责在正确的对象中编译正确的文件,并且他们只会编译您编辑的文件。

【讨论】:

  • 我会推荐一个好的老品牌作为开始。
  • 我不知道我是否应该推荐它,因为 OP 说他们想要编译数百个文件,我试图回答这个问题。也许我应该考虑到 OP 是 C 的新手……
猜你喜欢
  • 2016-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-22
  • 2011-11-22
  • 2010-11-04
  • 1970-01-01
  • 2014-07-30
相关资源
最近更新 更多