2017-01-11 45 views
-1

我已经失去了我的脑海,试图推断编译C++项目的最有效方法。我坚持使用像Java这样的更受管理的语言,所以CMake文件对我来说有些迟钝。如何编译为库?

我的主要问题是什么我编译为库,我该怎么刚编译在一起呢?我在我的程序中有一个主要的功能,在带有不同文件头的各种类上。一起处理这些文件的最常用方式是什么?我是否应该将与函数分开的主函数编译,然后将它们链接起来,还是应该将它们作为共享函数库,尽管它对于函数库来说有点小了。

主要是我期待只是为了什么应该被一起编译一般准则,应该简单地联系在一起的,有人更清楚地解释规范这一切是如何工作的/最佳实践。

我明白,编译器需要的头文件和源文件编译成目标文件转换,然后它们组合为一个二进制文件。我只是混淆了二进制文件的内容。

+0

如果有一些是由其他进程然后它需要更好地把它们放在一个库的方法。如果只想部署单个二进制文件,则将该库设置为静态,但这会增加二进制大小。 – VivekD

+2

怀疑:根本不要使用图书馆。当项目增长时,您将学习何时将代码拆分为库和二进制文件。 – usr1234567

+1

在与使用Java中的非可执行jar相同的情况下使用库。 – user4581301

回答

1

如果您需要的只是一个可执行的代码,你可以只是链接所有目标文件一起。如果在不同的可执行文件中需要相同的函数/对象文件,则库很有用。

当然,更大的项目让你也可以使用子项目,其输出库,然后主项目文件和子项目库链接在一起。