【发布时间】:2016-06-15 08:23:51
【问题描述】:
考虑到分布式编译器,例如 incredibuild 或 distcc,假设我将编译作业发送到远程机器以编译依赖于静态或动态库的 C++ 源文件(我需要安装它才能构建我的程序)。远程机器是否需要该库才能编译它?
根据我对 C 和 C++ 的理解,当一个源文件被编译成一个目标文件时,编译器会“存根”掉源代码之外的任何东西(例如对不在代码中的函数的调用,即仅定义为标题的一部分)。当链接发生时,即需要存在依赖关系,以便链接器可以检查它们以确定函数的实现位置。如果是这种情况,这是否意味着分布式编译器只有在安装了依赖项的情况下才能进行编译+链接?动态库和静态库是否同样适用?
【问题讨论】:
标签: compilation linker distributed