Can someone help me understand why MSVC 12 2013 reports these symbols are unresolved?
Error 239 error LNK2019: unresolved external symbol "public: static double const Wm3::Math<double>::DEG_TO_RAD" (?DEG_TO_RAD@?$Math@N@Wm3@@2NB) referenced in function "protected: void __cdecl Matt::ExternalNavConverter::CExternalNavConverter::DoProcessExternalNav(void)" (? DoProcessExternalNav@CExternalNavConverter@ExternalNavConverter@Matt@@IEAAXXZ) C:\Users\mrussell\workspace\Matt\build-conan-Release\Libraries\MattClient\ExternalNavConverter.lib(ExternalNavConverter.obj) MattClient
The symbol DEG_TO_RAD is defined in my Wml.dll file, which I'm quite sure is in my %PATH% when I start MSVC.
The output from dumpbin for the DLL is:
dumpbin /exports C:\Users\mrussell\.conan\data\wml\3.x\ntc\stable\package\a4501f33ae09df332b76b4d6f0e5cebffbe83874\bin\Wml3.dll | grep -i DEG_TO_RAD
143 8E 00031A64 ?DEG_TO_RAD@?$Math@M@Wm3@@2MB
144 8F 00031A98 ?DEG_TO_RAD@?$Math@N@Wm3@@2NB
And for the LIB:
dumpbin /exports C:\Users\mrussell\.conan\data\wml\3.x\ntc\stable\package\a4501f33ae09df332b76b4d6f0e5cebffbe83874\lib\Wml3.lib | grep DEG_TO_RAD
?DEG_TO_RAD@?$Math@M@Wm3@@2MB (public: static float const Wm3::Math<float>::DEG_TO_RAD)
?DEG_TO_RAD@?$Math@N@Wm3@@2NB (public: static double const Wm3::Math<double>::DEG_TO_RAD)
I set up a minimal example showing the failed linking here, unfortunately I'm not sure I can put the headers or .lib file.
I'm not that familiar with dumpbin, I'm more accustomed to nm with c++filt.. But to me, this suggests that the symbol DEG_TO_RAD is exported in the DLL.
In the Linker command line window, I can see that by bin path (path the to DLL) is provided as a /LIBPATH, and the full path to the .lib is provided as well (provided in "Additional Dependencies".)
Could this be because I might be mixing up shared and static libs together? Or a sign that despite me thinking the DLL is in my path, somehow it isn't? Or the symbols in the DLL aren't actually there? (the equivalent of a non-T for the symbol type in nm)
I'm going through the list given in this answer, but so far am just confused as to why it is not working.