Mon problème était que dans les projets Properties>C/C++>CommandLine
J'avais mal spécifié l'interrupteur. C'est-à-dire qu'au lieu d'écrire /D_HASHING_BUILD_DLL
J'avais écrit /D_Hashing_BUILD_DLL
.
Note complémentaire :
C'est ainsi que je construis mon DLL
/ Lib
dans Visual studio : (et mon Hashing.h
ressemble à ceci : )
#ifndef HASHING_H
#define HASHING_H
/* If we are we on Windows, we want a single define for it.*/
#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
#define _WIN32
#endif /* _WIN32 */
#if defined(_WIN32) && defined(_HASHING_BUILD_DLL)
/* We are building Hashing as a Win32 DLL */
#define HASHING_API __declspec(dllexport)
#elif defined(_WIN32) && defined(HASHING_DLL)
/* We are calling Hashing as a Win32 DLL */
#define HASHING_API __declspec(dllimport)
#elif defined(__GNUC__) && defined(_HASHING_BUILD_DLL)
/* We are building Hashing as a shared / dynamic library */
#define HASHING_API __attribute__((visibility("default")))
#else
/* We are building or calling HASHING as a static library */
#define HASHING_API
#endif
//your inlcudes
class HASHING_API MyClass
{
//...
};
#endif // !HASHING_H
et dans le chemin que j'ai indiqué plus tôt, j'utilise simplement le commutateur que j'ai défini ici et voilà, la DLL est construite correctement !