`-( ARCHIVES -)'`--start-group ARCHIVES --end-group'
ARCHIVES 应当是一个关于档案文件的列表. 它们可以是显式的文件名,或者'-l'选
项.
这些指定的档案文件会被多遍搜索,直到没有新的无定义引用被创建. 通常,一个档
案文件只会被搜索一次. 但如果这个档案文件中的一个符号需要被用来解析一个档
案中的目标引用到的无定义的符号,而这个符号在命令行上的后面某个档案文件中
出现, 连接器不能解析这个引用. 把这些档案文件分组后,它们都可被反复搜索直
到所有可能的引用都被解析了为止.
使用这个选项有一个很大的运行开销. 只有在无法避免在多个档案文件中使用循环
引用时才用它.
关于–start-group和 –end-group的含义:
(archives)或者—start-group archives –end-group 参数中间的目标文件会被ld反复搜索,对相互交叉引用的目标文件很有用
所以,我的理解是,如果ld载入了一个库,发现该库中,有UNDF,未被定义的变量,有了这个参数的指示后,就会在这一堆.a和.o文件里面反复搜索,直至找到为止,否则,如果在已经加载的库中,找不到,就会报错。