Reputation: 1121
I'm getting a linker error indicating that the linker was unable to open a file (a static library) and therefore it fails. I am having a very difficult time troubleshooting this error because I never told the linker to link to the file which it is failing to open.
I am telling the linker to link to several static libraries. Many of the libraries I am linking to are wxWidgets static libraries. I don't need ALL of the modules from wxWidgets, so there are some which I am linking to and many which I am not. The file which the linker can't open is 'wxbase31ud_net.lib'. Like I said, that file is not among the libraries I am linking to. My immediate thought was that this dependency was being introduced implicitly somehow, perhaps by one of the wxwidgets libraries I WAS linking to. I didn't think static linkage worked this way but I didn't have any other ideas. I have been investigating that possibility and I've found nothing which indicates that is the case.
What could be causing the linker to try and open this file?
Edit: Also, to be clear, the error I'm seeing is LNK1104
Upvotes: 1
Views: 195
Reputation: 22753
The answer by zeromus is correct, this is almost certainly indeed due to including msvc/wx/setup.h
which contains #pragma comment(lib)
s. Possible solutions:
wxNO_NET_LIB
when building your project, this will prevent the file above from autolinking this particular library. You may/will need to define more wxNO_XXX_LIB
symbols if you're missing other libraries, of course.$(WXWIN)/include/msvc
in your include path, then wx/setup.h
under it won't be included and nothing will be linked in automatically. The drawback is that you will have to specify all the libraries you do need to link with manually.Upvotes: 3
Reputation: 1667
it's probably from a #pragma comment(lib,"???")
except in the case of wx the argument to the pragma may be complex macros and it will be difficult to grep. This particular one may be from setup.h with #pragma comment(lib, wxWX_LIB_NAME("base", ""))
. You should be solving this by adding the directory with the wx libs to the linker's search directories.
Upvotes: 5