What is the Microsoft Visual Studio equivalent to

2019-01-15 05:51发布

When linking a static library against an executable, unreferenced symbols are normally discarded. In my case some otherwise unused objects are used to register their respective classes into a factory and if the objects are discarded, this registration fails.

Under Unix where we use gcc, I can pass the flag --whole-archive to the linker ld (see excerpt from ld documentation below), which makes ld not discard any objects. Is there anything like this for Visual C++?

--whole-archive

    For each archive mentioned on the command line after the
    `--whole-archive' option, include every object file in the archive
    in the link, rather than searching the archive for the required
    object files. This is normally used to turn an archive file into
    a shared library, forcing every object to be included in the
    resulting shared library. This option may be used more than once.

7条回答
来,给爷笑一个
2楼-- · 2019-01-15 06:45

In the property page of the executable look at Common Properties/References/Use Library Dependency Inputs set that to true. That's pretty much the MS equivalent of --whole-archive in a nutshell.

Edit: However the library in question needs to be part of the solution.

查看更多
登录 后发表回答