Compiling on Code::Blocks and mingw

Quorthon3D

20-02-2009 16:23:15

Hi.

I am trying compile Hydrax plugin on Code::Blocks, i download the last version,
first, the workspace has two folders with source than not exist(Perlin and PerlinPG), i exclude this source, fine.

but now when i compile appear the errors:

obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x48)||undefined reference to `Ogre::StringUtil::BLANK'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0xbf)||undefined reference to `Ogre::ConfigFile::getSetting(std::string const&, std::string const&) const'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x1ed)||undefined reference to `Ogre::StringConverter::parseBool(std::string const&)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x36c)||undefined reference to `Ogre::StringUtil::BLANK'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x37f)||undefined reference to `Ogre::ConfigFile::getSetting(std::string const&, std::string const&) const'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x3e6)||undefined reference to `Ogre::StringConverter::parseReal(std::string const&)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x5c8)||undefined reference to `Ogre::StringUtil::BLANK'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x63f)||undefined reference to `Ogre::ConfigFile::getSetting(std::string const&, std::string const&) const'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x76d)||undefined reference to `Ogre::StringConverter::parseInt(std::string const&)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x900)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x92e)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x965)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x1277)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x12b1)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x27a9)||undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x27e4)||undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x282a)||undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x3370)||undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x33b3)||undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x3bf3)||undefined reference to `Ogre::StringConverter::toString(bool, bool)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x413a)||undefined reference to `Ogre::StringConverter::toString(float, unsigned short, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x4681)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x677e)||undefined reference to `Ogre::ResourceGroupManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x6797)||undefined reference to `Ogre::ResourceGroupManager::resourceExists(std::string const&, std::string const&)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x6945)||undefined reference to `Ogre::LogManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x6963)||undefined reference to `Ogre::LogManager::logMessage(std::string const&, Ogre::LogMessageLevel, bool)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x6e67)||undefined reference to `Ogre::ResourceGroupManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x6e9c)||undefined reference to `Ogre::ResourceGroupManager::openResource(std::string const&, std::string const&, bool, Ogre::Resource*)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x6ed8)||undefined reference to `Ogre::ConfigFile::load(Ogre::SharedPtr<Ogre::DataStream> const&, std::string const&, bool)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x7019)||undefined reference to `Ogre::LogManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x703a)||undefined reference to `Ogre::LogManager::logMessage(std::string const&, Ogre::LogMessageLevel, bool)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x7651)||undefined reference to `Ogre::ResourceGroupManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x766a)||undefined reference to `Ogre::ResourceGroupManager::removeResourceLocation(std::string const&, std::string const&)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x76f9)||undefined reference to `Ogre::ResourceGroupManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x771f)||undefined reference to `Ogre::ResourceGroupManager::addResourceLocation(std::string const&, std::string const&, std::string const&, bool)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x78ae)||undefined reference to `Ogre::LogManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x78cc)||undefined reference to `Ogre::LogManager::logMessage(std::string const&, Ogre::LogMessageLevel, bool)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x92d1)||undefined reference to `Ogre::StringUtil::BLANK'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x92f9)||undefined reference to `Ogre::ConfigFile::getSetting(std::string const&, std::string const&) const'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x932d)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x9367)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x939e)||undefined reference to `Ogre::StringConverter::toString(int, unsigned short, char, std::_Ios_Fmtflags)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x9cf8)||undefined reference to `Ogre::LogManager::getSingleton()'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x9d19)||undefined reference to `Ogre::LogManager::logMessage(std::string const&, Ogre::LogMessageLevel, bool)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x9eaa)||undefined reference to `Ogre::StringUtil::BLANK'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0x9f3c)||undefined reference to `Ogre::ConfigFile::getSetting(std::string const&, std::string const&) const'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0xa31a)||undefined reference to `Ogre::StringUtil::split(std::string const&, std::string const&, unsigned int)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0xa333)||undefined reference to `Ogre::StringConverter::parseInt(std::string const&)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0xa38c)||undefined reference to `Ogre::StringUtil::split(std::string const&, std::string const&, unsigned int)'|
obj\Release\src\Hydrax\CfgFileManager.o:CfgFileManager.cpp:(.text+0xa3a8)||undefined reference to `Ogre::StringConverter::parseInt(std::string const&)'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|


how can I resolve it?

Xavyiy

20-02-2009 16:42:52

Are you linking hydrax with Ogre.lib? Seems thats you haven't added your ogre lib file to the linker

Quorthon3D

20-02-2009 17:36:44

Yes, i link ogreMain, and set correct path to includes, libs and dlls. =\

Quorthon3D

21-02-2009 01:22:23

Now, i compiled in my house, above error appears in my work.

errors here(my house):


-------------- Build: Release in Hydrax ---------------

Compiling: src\Hydrax\CfgFileManager.cpp
*
*
*
D:\Documents and Settings\Junior\Desktop\Plugin Hydrax\Hydrax\src\Hydrax\hydrax.cpp:71: warning: when initialized here
Linking dynamic library: bin\Release\Hydrax.dll
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x0): multiple definition of `Hydrax::Hydrax::isComponent(Hydrax::HydraxComponent const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x40): multiple definition of `Hydrax::Hydrax::remove()'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x40): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xc0): multiple definition of `Hydrax::Hydrax::setPolygonMode(Ogre::PolygonMode const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xc0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x180): multiple definition of `Hydrax::Hydrax::setShaderMode(Hydrax::MaterialManager::ShaderMode const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x180): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x200): multiple definition of `Hydrax::Hydrax::setPlanesError(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x200): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x210): multiple definition of `Hydrax::Hydrax::setCausticsEnd(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x210): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x400): multiple definition of `Hydrax::Hydrax::setCausticsPower(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x400): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x8b0): multiple definition of `Hydrax::Hydrax::setCausticsScale(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x8b0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xa90): multiple definition of `Hydrax::Hydrax::setSmoothPower(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xa90): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xc70): multiple definition of `Hydrax::Hydrax::setDepthLimit(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xc70): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xe70): multiple definition of `Hydrax::Hydrax::setFoamTransparency(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xe70): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x11e0): multiple definition of `Hydrax::Hydrax::setFoamStart(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x11e0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x1550): multiple definition of `Hydrax::Hydrax::setFoamScale(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x1550): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x18c0): multiple definition of `Hydrax::Hydrax::setFoamMaxDistance(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x18c0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x1c30): multiple definition of `Hydrax::Hydrax::setSunColor(Ogre::Vector3 const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x1c30): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x1fc0): multiple definition of `Hydrax::Hydrax::setSunArea(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x1fc0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x2330): multiple definition of `Hydrax::Hydrax::setSunStrength(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x2330): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x26a0): multiple definition of `Hydrax::Hydrax::setSunPosition(Ogre::Vector3 const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x26a0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x2ab0): multiple definition of `Hydrax::Hydrax::setNormalDistortion(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x2ab0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x2de0): multiple definition of `Hydrax::Hydrax::setWaterColor(Ogre::Vector3 const&)'Info: resolving Ogre::StringUtil::BLANK by linking to __imp___ZN4Ogre10StringUtil5BLANKE (auto-import)
Info: resolving Ogre::Vector3::UNIT_Z by linking to __imp___ZN4Ogre7Vector36UNIT_ZE (auto-import)
Info: resolving Ogre::Quaternion::IDENTITY by linking to __imp___ZN4Ogre10Quaternion8IDENTITYE (auto-import)
Info: resolving Ogre::Vector3::ZERO by linking to __imp___ZN4Ogre7Vector34ZEROE (auto-import)
Info: resolving Ogre::Math::fDeg2Rad by linking to __imp___ZN4Ogre4Math8fDeg2RadE (auto-import)
Info: resolving Ogre::Vector3::NEGATIVE_UNIT_X by linking to __imp___ZN4Ogre7Vector315NEGATIVE_UNIT_XE (auto-import)
Info: resolving Ogre::Vector3::NEGATIVE_UNIT_Z by linking to __imp___ZN4Ogre7Vector315NEGATIVE_UNIT_ZE (auto-import)
Info: resolving Ogre::ColourValue::White by linking to __imp___ZN4Ogre11ColourValue5WhiteE (auto-import)
Info: resolving Ogre::Vector2::ZERO by linking to __imp___ZN4Ogre7Vector24ZEROE (auto-import)
Info: resolving Ogre::ColourValue::Red by linking to __imp___ZN4Ogre11ColourValue3RedE (auto-import)
Info: resolving vtable for Ogre::MeshPtrby linking to __imp___ZTVN4Ogre7MeshPtrE (auto-import)
Info: resolving Ogre::Math::PI by linking to __imp___ZN4Ogre4Math2PIE (auto-import)
Info: resolving Ogre::Vector3::NEGATIVE_UNIT_Y by linking to __imp___ZN4Ogre7Vector315NEGATIVE_UNIT_YE (auto-import)
Info: resolving Ogre::ColourValue::Black by linking to __imp___ZN4Ogre11ColourValue5BlackE (auto-import)
Info: resolving Ogre::Vector3::UNIT_Y by linking to __imp___ZN4Ogre7Vector36UNIT_YE (auto-import)
Creating library file: bin\Release\libHydrax.a
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x2de0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x36c0): multiple definition of `Hydrax::Hydrax::setGlobalTransparency(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x36c0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x39f0): multiple definition of `Hydrax::Hydrax::setFullReflectionDistance(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x39f0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x3d20): multiple definition of `Hydrax::Hydrax::_setStrength(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x3d20): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x4090): multiple definition of `Hydrax::Hydrax::rotate(Ogre::Quaternion const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x4090): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x43e0): multiple definition of `Hydrax::Hydrax::setPosition(Ogre::Vector3 const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x43e0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x4650): multiple definition of `Hydrax::Hydrax::setModule(Hydrax::Module::Module*, bool const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x4650): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x5d90): multiple definition of `Hydrax::Hydrax::setComponents(Hydrax::HydraxComponent const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x5d90): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x7620): multiple definition of `Hydrax::Hydrax::DeviceRestoredListener::eventOccurred(std::string const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const*)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x7620): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0x89f0): multiple definition of `Hydrax::Hydrax::create()'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0x89f0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xae90): multiple definition of `Hydrax::Hydrax::~Hydrax()'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xae90): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xb380): multiple definition of `Hydrax::Hydrax::~Hydrax()'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xb380): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xb870): multiple definition of `Hydrax::Hydrax::Hydrax(Ogre::SceneManager*, Ogre::Camera*, Ogre::Viewport*)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xb870): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xbfe0): multiple definition of `Hydrax::Hydrax::Hydrax(Ogre::SceneManager*, Ogre::Camera*, Ogre::Viewport*)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xbfe0): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xc750): multiple definition of `Hydrax::Hydrax::_checkUnderwater(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xc750): first defined here
obj\Release\src\Hydrax\hydrax.o:hydrax.cpp:(.text+0xd440): multiple definition of `Hydrax::Hydrax::update(float const&)'
obj\Release\src\Hydrax\Hydrax.o:hydrax.cpp:(.text+0xd440): first defined here
D:\Program Files\CodeBlocks\MinGW\bin\ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.collect2: ld returned 1 exit status
Process terminated with status 1 (1 minutes, 42 seconds)
0 errors, 310 warnings



multiple definition, Can someone help me?
I want much much much this plugin inside of my app. *.*

icaromotta

25-08-2010 22:20:49

:D

Conseguimos criar dll e lib no mingW!

We can create dll and lib in mingw!