我所见到的唯一真正使用
我有第二个问题与我读到的关于整个存档选项有关,但我无法完全理解。大致意思是,在链接静态库时应该使用
谢谢。
--whole-archive
链接器选项的方法是从静态库创建共享库。最近,我遇到了一些使用这个选项来链接内部静态库的Makefile。当然,这会导致可执行文件不必要地引入未被引用的目标代码。我对此的反应是这是错误的,我有什么遗漏吗?我有第二个问题与我读到的关于整个存档选项有关,但我无法完全理解。大致意思是,在链接静态库时应该使用
--whole-archive
选项,如果可执行文件也链接了一个共享库,并且该共享库(部分)包含与静态库相同的目标代码。也就是说,共享库和静态库在目标代码方面有重叠。使用此选项将强制解析可执行文件中的所有符号(无论使用情况如何)。这应该避免目标代码重复。这很令人困惑,如果程序中引用了一个符号,必须在链接时独特地解析它,那么这个重复的业务是什么?(如果这段话不是非常清晰,请原谅我)谢谢。
std :: function
的诱惑。 - Arthur Tacca--whole-archive
不合适。请使用-Wl,-u,needed_symbol
。 - Employed Russian