Hi, just a wild guess: .def files for C++ projects have to list the mangled names, so if you want the export name to be just "testfunc", it should be declared as 'extern "C"'.
Petr On Thu, Sep 13, 2012 at 8:17 AM, Ali Hamdi <alh...@gmail.com> wrote: > Hello everybody, > > I am trying to create a DLL by using a .DEF file and targeting the > MinGW gcc-compiler. In my CMakeLists.txt I have this: > > add_library(MyDll SHARED > MyDll.cpp > dllmain.cpp > stdafx.cpp > MyDll.def). > > I have the following sources: > > MyDll.def: > > LIBRARY libMyDll > EXPORTS testfunc > > stdafx.cpp: > > #include "stdafx.h" > > stdafx.h: > > #define WIN32_LEAN_AND_MEAN > #include <windows.h> > > dllmain.cpp: > > #include "stdafx.h" > > BOOL APIENTRY DllMain( HMODULE hModule, > DWORD ul_reason_for_call, > LPVOID lpReserved > ) > { > switch (ul_reason_for_call) > { > case DLL_PROCESS_ATTACH: > case DLL_THREAD_ATTACH: > case DLL_THREAD_DETACH: > case DLL_PROCESS_DETACH: > break; > } > return TRUE; > } > > and finally > > MyDll.cpp: > > #include "stdafx.h" > > __declspec(dllexport) int __stdcall testfunc(int x ) > { > return 1; > } > > > If I do a regular cmake to create Visual Studio files, everything > compiles and links just fine (within VS Express 2010). But if I use > the CMAKE GUI and explicitly target MinGW, and then use make in the > cmd-prompt then I get the following error: > > Creating library file: libMyDll.dll.a > Cannot export testfunc: symbol not defined > > > Any idea of what I am doing wrong here? I would really appreciate some > help. > -- > > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake >
-- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake