我的所有程序在C语言中往往都是相当原始的控制台应用程序。例如,我可能编写一些代码来解析文件头,然后将一些数据从头打印到屏幕上。为此,我只使用stdio.h
stdlib.h
,string.h
,stdbool.h
中的函数/符号,例如printf()
,fopen()
,{{ 1}},等等...通常,我不敢在main.c文件以及几个.h文件和.c文件中编写代码。当需要编译时,我将执行以下操作:fread()
该程序运行良好,并且我与同事仅共享源代码,或者如果它们在同一操作系统上,则共享二进制文件,他们通常可以像我一样构建代码并运行它,或直接运行二进制文件。如果我的同事使用的是其他操作系统,那么他/她将仅在该计算机上构建源,或者我将在他们拥有该操作系统的计算机上为他们构建源。
实际上,我从来没有真正考虑过我的依赖项是如何链接的。这可能是因为我主要编写内部工具,并且没有发布给大批读者。话虽这么说,在哪种情况下上述方法不能在系统上运行?当我仅使用std C功能时,是否有可能安装了相同版本的gcc的人无法仅运行我的可执行文件或自己构建代码,然后运行它?实际上,我已经从Linux盒中获取了相同的C代码,将其复制/粘贴到Visual Studio中并使用MSVC进行了编译,并且它仍然可以与标准函数一起正常工作。因此,即使是交叉编译器,我也可以不需要考虑链接。