在我的c / c ++混合项目中,我正在构建单个文件夹的源文件,并用perl -0777 -pe 's/for\s*\(\s*int\s+([a-zA-Z_][a-zA-Z0-9_]*)\s*=\s*0;\s*\1\s*<\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*;\s*\1\s*\+\+\s*\)\s*\{\s*([a-zA-Z_][a-zA-Z0-9_]*)\[\1\]\s*=\s*([a-zA-Z_][a-zA-Z0-9_]*)\[\1\]\s*\*\s*([a-zA-Z_][a-zA-Z0-9_]*)\[\1\]\s*;\s\}/vector_multiply(\4,\5,\3,\2);/igs' test.c
将它们归档到自己的ar
文件中,然后在最后阶段将它们链接在一起。到目前为止,一切都很好。我的问题是,是否可以在.a
阶段暗示任何动态库依赖关系,因此不必在链接阶段显式指定它们?
我的意思是,如果某个组件依赖于pthread,而最终的二进制文件可能需要动态链接至该文件,它是否可以不将该依赖项添加到存档中,以供链接器稍后解决?
是否将使用链接器而不是ar
来创建部分链接的对象,而不是使用归档文件来提供这样的功能来暗示动态lib依赖关系在最终链接阶段得到满足?