Background to this issue: I need to port an application over to Windows 7. I'm facing linker issues using VS2012 that I haven't had with VS2010. Due to my obsession with Linux, my Windows knowledge is not the best so I already apologize if my problem is caused by my lack of "wisdom".
![Wink ;)](./images/smilies/icon_wink.gif)
Steps I took so far:
1, Compile Irrlicht 1.8.1 (Release, DLL) in VS2012. The only modification I made was to disable the compilation of the DX9 driver. Everything else is left to "factory settings".
2, Create an empty project that only renders a couple of 3D lines. Makes use of the .lib for linkage and the .dll during runtime.
3, When attempting to link to the .lib, the externally declared "IdentityMatrix" causes the linker to report an unresolved external symbol, like so:
Code: Select all
1>pHApplication.obj : error LNK2001: unresolved external symbol "class irr::core::CMatrix4<float> const irr::core::IdentityMatrix" (?IdentityMatrix@core@irr@@3V?$CMatrix4@M@12@B)
Code: Select all
IRRLICHT_API extern const matrix4 IdentityMatrix; (matrix4.h)
Code: Select all
const matrix4 IdentityMatrix(matrix4::EM4CONST_IDENTITY); (Irrlicht.cpp)
Code: Select all
490 public symbols
76F0 __IMPORT_DESCRIPTOR_Irrlicht
791E __NULL_IMPORT_DESCRIPTOR
7A56 Irrlicht_NULL_THUNK_DATA
7BAA __imp_?IdentityMaterial@video@irr@@3VSMaterial@12@A
7CC2 __imp_?LOCALE_DECIMAL_POINTS@core@irr@@3V?$string@DV?$irrAllocator@D@core@irr@@@12@A
7C36 __imp_?IdentityMatrix@core@irr@@3V?$CMatrix4@M@12@B
84B8 __imp__createDeviceEx
84B8 _createDeviceEx
844C __imp__createDevice
844C _createDevice
8526 __imp__png_access_version_number
8526 _png_access_version_number
BAAE __imp__png_reset_zstream
BAAE _png_reset_zstream
B266 __imp__png_handle_as_unknown
B266 _png_handle_as_unknown
99BC __imp__png_get_header_version
99BC _png_get_header_version
994A __imp__png_get_header_ver
994A _png_get_header_ver
Maybe I'm just missing a preproc directive, a compiler/linker setting or it's all caused by my despisement of VisualStudio. Maybe it's really a bug in the end.
Thanks in advance,
p.