gpt4 book ai didi

C++链接器设计问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:33 25 4
gpt4 key购买 nike

所以这更像是一个设计问题,尽管有关 g++ 链接器的任何信息都会很棒。

我在以下结构中嵌入了 .cpp 文件:

Main
Main/Utilities
Main/Utilities/Data

当我在 Main 中编译主入口点 .cpp 时,我必须指定任何链接的 .cpp 使用过的所有 .cpp 文件 - 这对于我的测试项目来说工作正常,它只有大约 5 个链接文件,但是这个项目会增长得非常快,这显然是不可行的。有办法解决这个问题吗?这是什么原因造成的?

我尝试使用“g++ *.cpp”,但它仍然希望我链接其他的。我必须做类似“g++ main.cpp Utilities/other.cpp Utilities/Data/data.cpp”的操作。 other.cpp使用data.cpp,main.cpp使用other.cpp。编译 other.cpp 时,我必须像以前一样指定 data.cpp。

非常感谢您的任何想法或帮助!

最佳答案

管理大型项目的一般方法是使用适当的目录结构(比如您已有的目录结构),然后在每个目录中放置一个Makefile。顶级 Makefile 应该递归调用所需的 Makefiles。每个 Makefile 都应该指定要从该目录编译的源文件(如果需要,还可以指定其他编译标志)。理想情况下,您应该根据您的要求制作静态库(或动态库)。一旦你编译了所有相关代码(意味着你有 .lib.o 文件),那么你应该编译具有入口点的源文件(例如 main function in c/c++) 并指定链接器的依赖库 (ld).

举个例子,看看任何至少有 2 级目录结构的开源项目。

关于C++链接器设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com