(i) 决定这一点的因素太多了,即使是近似值也是不可能的。编译可以是内存、cpu 或硬盘驱动器。文件的复杂性很重要(根据您的描述,您的复杂性很低)。
(ii) 这样做的典型方法是制作一个库并让系统找出链接或加载。您可以选择静态或动态链接。
静态链接
假设您使用的是 gcc,这将如下所示:
g++ -c file1.cpp -o file1.o
g++ -c file2.cpp -o file2.o
...
g++ -c filen.cpp -o filen.o
ar -rc libvector.a file1.o file2.o ... filen.o
然后,当您构建自己的代码时,您的最终链接如下所示:
g++ myfile.cpp libvector.a -o mytask
动态链接
同样,假设您使用的是 gcc,它看起来像这样:
g++ -c file1.cpp -fPIC -o file1.o
g++ -c file2.cpp -fPIC -o file2.o
...
g++ -c filen.cpp -fPIC -o filen.o
ld -G file1.o file2.o ... filen.o -o libvector.so
然后,当您构建自己的代码时,您的最终链接如下所示:
g++ myfile.cpp libvector.so -o mytask
您需要将 libvector.so 放在加载程序的路径中,以便您的可执行文件工作。
无论如何,只要 50,000 个文件没有变化,您只需执行最后一个命令(这会快得多)。