可能是个愚蠢的问题,我用 C++ 编程已经有一段时间了,但相比之下,我是 Linux 的新手。
我用 C++ 创建了一个简单的 Matrix 类,并且一直在我工作所需的大多数程序中使用它。 到目前为止,我一直在将 Matrix.h 和 Matrix.cc 文件复制到我在包含我编写的程序的不同文件夹内创建的/include 子文件夹中,编译它们并将所有内容与 makefile 链接在一起。我猜不是真的那么聪明。
现在,我想到要改善这种情况的第一件事就是将 Matrix.h 和 Matrix.cc 的单个拷贝放在一个文件夹中,并在我的程序的 make 文件中添加它们的新路径。 在这种情况下,是否有任何“首选”文件夹,存放文件应该更方便?我似乎明白大多数头文件都在/usr/include 中,而类文件在/usr/lib 中。
具体来说,我在想,当我使用我创建的这个类时,我必须在 main_program.cpp 中包含头文件并在编译时链接文件 Matrix.o。 另一方面,当我使用“普通”类(例如 cmath、vector、iostream)时,我只需要在主文件中包含 header ,编译器会负责链接。 这可以通过简单地将我的类文件放在正确的系统文件夹中来实现吗?我应该修改编译器选项中的任何内容吗?
谢谢!
最佳答案
您不必手动链接标准头文件的原因是编译器默认链接 libc.a
。其他库默认不链接,需要编译标志。例如,cmath
需要 -lm
标志,因为它不是 libc
的一部分。
因此,简短的回答是您无法真正避免告诉编译器链接什么。
关于C++ - Ubuntu 16.04 中个人类(class)的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46325950/