多个已定义符号的C/C++链接器顺序

Mik*_*ike 3 c++ standards linker gnu

如果我在目标文件和库中定义了相同的符号,GNU链接器将从目标文件中获取符号.考虑这个例子:

g++ -L"dir/to/lib" -o Executable Test.o foo.o -lMyLib
Run Code Online (Sandbox Code Playgroud)

如果我foo在foo.cpp中定义了一个具有相同签名的函数,并且在源文件中编译了"MyLib",那么如果我使用这个顺序,GNU链接器总是更喜欢前一个.

这种行为GNU工具链是否具体?您是否知道其他链接器的行为方式相同?这是否记录在案(GNU文档,C++标准)?我找不到任何东西......

我想在进行单元测试(也就是链接接缝)时使用此功能来替换/模拟某些功能.

Ofi*_*fir 8

来自http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html:

"链接器按照指定的顺序搜索和处理库和目标文件"