In visual studio how to include all .libs in a folder
Asked Answered
G

5

17

I am trying to build a project with another project. There are a lot of libs in there and I am not sure where the required unreferenced symbols are present.

Is there a way I can include all the .lib files while compiling?

I have given the lib directory as an additional input to the linker, yet it asks for individual .lib files to be included. Is there an option to say include all .libs in this folder?

Grisaille answered 12/11, 2011 at 9:51 Comment(0)
I
22

bigD's answer is right.

The place you would actually do this, in VS 2012 at least, is by right-clicking on the project, then going:

Properties > Configuration Properties > Linker > Command Line > Additional Options

In that box, you would just type:

"[libFolder]\*.lib"

You can have multiple locations by separating locations with a space, like so:

"[libFolder1]\*.lib" "[libFolder2]\*.lib"
Intent answered 10/9, 2014 at 22:35 Comment(2)
This was a lot easier than adding them all individually. Not sure if I included libs that I don't need however. +1 for saving me some time while hacking around.Saeger
You can also add /VERBOSE:UNUSEDLIBS to the line to get any libraries that have not been used.Intent
V
6

You should just be able to write "someFolder/*.lib" where you have to specify the libraries to link against

Vaillancourt answered 10/7, 2014 at 8:15 Comment(0)
M
4

AFAIK there is no way to do that: your options are to

  • include each lib in the linker->Input->Additional Dependencies

  • include libs via pragma directive in the source file i.e. add

pragma comment(lib, "some_lib.lib" )

  • if the projects are part of the solution, you can select them as "Project Dependencies"

The easiest way to do it is to use the pragma since you only have to do it once for both debug and release. For example, you could do a directory listing of your lib directory and then copy and past the remainder of the directive into your source file(s).

Further, to get a symbol listing of a static library, you can run the dumpbin tool on the lib files (AFAIR with the /ALL option).

Molt answered 12/11, 2011 at 14:34 Comment(2)
Has there been a change in recent versions of Visual Studio? Moreover, shouldn't it possible to write a pre-build script to scan the folder?Vanhook
I'm using VS2015, and I was able to go into Linker->Input->Additional Dependencies and add [folder]*.lib and have it work for me today.Franck
S
1

This will output a file will all .lib files listed. You can copy and paste this or modify it according to your needs.

Save as a batch.

for %%f in (*.lib) DO echo|set /p=%%~f >> alllibs.txt 
Screens answered 14/2, 2014 at 18:16 Comment(0)
B
0

Though you are in Visual Studio, if you go with command line, you can put all the libs in a linker response file and reference it as a standalone option with a @ during link phase.

Unfortunately, according the above link,

This linker option is not available from the Visual Studio development environment.

Brewster answered 30/8, 2019 at 2:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.