Hello Albrecht,

I just tried placing the fltkdll.dll in each sub-directory in the project
tree and building the example project again. I got the same errors.

I would be thankful if you could help me fix this.

Best regards, Asif


On Sat, May 21, 2011 at 8:01 PM, asif saeed <[email protected]> wrote:

> Hello Albrecht,
>
> This time,after defining FL_DLL as a preprocessor symbol, I got the
> following errors:
>
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> public: static int __cdecl Fl::run(void)" (__imp_?run@Fl@@SAHXZ)
> referenced in function _main
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> public: void __thiscall Fl_Window::show(int,char * *)"
> (__imp_?show@Fl_Window@@QAEXHPAPAD@Z) referenced in function _main
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> public: void __thiscall Fl_Group::end(void)" (__imp_?end@Fl_Group@@QAEXXZ)
> referenced in function _main
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> enum Fl_Labeltype __cdecl fl_define_FL_SHADOW_LABEL(void)"
> (__imp_?fl_define_FL_SHADOW_LABEL@@YA?AW4Fl_Labeltype@@XZ) referenced in
> function _main
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> protected: __thiscall Fl_Widget::Fl_Widget(int,int,int,int,char const *)"
> (__imp_??0Fl_Widget@@IAE@HHHHPBD@Z) referenced in function _main
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> public: __thiscall Fl_Window::Fl_Window(int,int,char const *)"
> (__imp_??0Fl_Window@@QAE@HHPBD@Z) referenced in function _main
> 1>tt.obj : error LNK2001: unresolved external symbol "protected: virtual
> void __thiscall Fl_Window::draw(void)" (?draw@Fl_Window@@MAEXXZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual int
> __thiscall Fl_Window::handle(int)" (?handle@Fl_Window@@UAEHH@Z)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual void
> __thiscall Fl_Window::resize(int,int,int,int)" (?resize@Fl_Window
> @@UAEXHHHH@Z)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual void
> __thiscall Fl_Window::show(void)" (?show@Fl_Window@@UAEXXZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual void
> __thiscall Fl_Window::hide(void)" (?hide@Fl_Window@@UAEXXZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual class
> Fl_Group * __thiscall Fl_Group::as_group(void)" (?as_group@Fl_Group
> @@UAEPAV1@XZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual class
> Fl_Window * __thiscall Fl_Window::as_window(void)" (?as_window@Fl_Window
> @@UAEPAV1@XZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual class
> Fl_Gl_Window * __thiscall Fl_Widget::as_gl_window(void)"
> (?as_gl_window@Fl_Widget@@UAEPAVFl_Gl_Window@@XZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "protected: virtual
> void __thiscall Fl_Window::flush(void)" (?flush@Fl_Window@@MAEXXZ)
>
> 1>tt.obj : error LNK2001: unresolved external symbol "protected: virtual
> void __thiscall Fl_Box::draw(void)" (?draw@Fl_Box@@MAEXXZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual int
> __thiscall Fl_Box::handle(int)" (?handle@Fl_Box@@UAEHH@Z)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual void
> __thiscall Fl_Widget::resize(int,int,int,int)" (?resize@Fl_Widget
> @@UAEXHHHH@Z)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual void
> __thiscall Fl_Widget::show(void)" (?show@Fl_Widget@@UAEXXZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual void
> __thiscall Fl_Widget::hide(void)" (?hide@Fl_Widget@@UAEXXZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual class
> Fl_Group * __thiscall Fl_Widget::as_group(void)" (?as_group@Fl_Widget
> @@UAEPAVFl_Group@@XZ)
> 1>tt.obj : error LNK2001: unresolved external symbol "public: virtual class
> Fl_Window * __thiscall Fl_Widget::as_window(void)" (?as_window@Fl_Widget
> @@UAEPAVFl_Window@@XZ)
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> public: virtual __thiscall Fl_Widget::~Fl_Widget(void)" (__imp_??1Fl_Widget@
> @UAE@XZ) referenced in function "public: virtual void * __thiscall
> Fl_Box::`scalar deleting destructor'(unsigned int)" (??_GFl_Box@@UAEPAXI@Z
> )
> 1>tt.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
> public: virtual __thiscall Fl_Window::~Fl_Window(void)" (__imp_??1Fl_Window@
> @UAE@XZ) referenced in function "public: virtual void * __thiscall
> Fl_Window::`scalar deleting destructor'(unsigned int)" (??_GFl_Window@
> @UAEPAXI@Z)
> 1>E:\scratch\tt\Release\tt.exe : fatal error LNK1120: 24 unresolved
> externals
>
>
> Apparently, the linker cannot find the dll. Even though I have placed it in
> the same directory where the EXE is supposed to be created.
>
> Any help now?
>
> Thanks and regards, Asif
>
>
>
> On Sat, May 21, 2011 at 7:27 PM, Albrecht Schlosser <[email protected]
> > wrote:
>
>> On 21.05.2011 15:24, asif saeed wrote:
>>
>> > I built in release configuration (with multi-byte character set) the
>> > following projects in order:
>> >
>> >                       fltkjpeg
>> >                       fltkpng
>> >                       fltkzlib
>> >                       fltkdll (I built fltkdll separately)
>> >
>> > This created .lib files for jpeg, png and zlib in the
>> fltk-1.3.x-r8514\lib
>> > directory and an fltkdll.dll in fltk-1.3.x-r8514\test directory.
>>
>> okay so far ...
>>
>> > Then
>> >             1)   I created a new empty win32 application .exe project.
>> >             2)   set the configuration to Release
>> >             3)  specified multi-byte character-set in the Configuration
>> > Properties/General
>>
>> Why do you do this? You'd better only do one step after the other. If it
>> is not necessary, don't do it. But I don't say that this matters here...
>>
>> >             4)  put "E:\libs\fltk-1.3.x-r8514" in the
>> C++/General/Additional
>> > Include Directories
>> >             5)  specified "E:\libs\fltk-1.3.x-r8514\lib" in
>> > Linker/General/Additional Library Directories
>> >             6) specified "comctl32.lib" in Linker/Input - according to
>> the
>> > online docs.
>> >             7) set Linker/System/Subsystem to Windows
>> (/SUBSYTEM:WINDOWS)
>>
>> okay.
>>
>> > I got the following errors:
>> >
>> >
>> > 1>tt.obj : error LNK2019: unresolved external symbol "protected:
>> __thiscall
>> > Fl_Widget::Fl_Widget(int,int,int,int,char const *)" (??0Fl_Widget@
>> > @IAE@HHHHPBD@Z) referenced in function "public: __thiscall
>> > Fl_Box::Fl_Box(int,int,int,int,char const *)" (??0Fl_Box@@QAE@HHHHPBD
>> @Z)
>> > 1>tt.obj : error LNK2001: unresolved external symbol "protected: virtual
>> > void __thiscall Fl_Box::draw(void)" (?draw@Fl_Box@@MAEXXZ)
>>
>> ...
>>
>> > 1>E:\scratch\tt\Release\tt.exe : fatal error LNK1120: 13 unresolved
>> > externals
>>
>> You missed probably two more points in your project's setup:
>>
>>  (1) you must define "WIN32" for all FLTK projects
>>  (2) you must define "FL_DLL" if you want to link with the dll version
>>
>> You can do this in the compiler/c++ setup (I don't know the exact
>> menu names), there you can define additional macros or something like
>> this.
>>
>> > I also specified the directory E:\libs\fltk-1.3.x-r8514\test in the
>> > operating system's PATH variable and put fltkdll.dll in every
>> sub-directory
>> > under the project directory tree.
>>
>> Again, don't do this (and you'd better delete all these fltkdll.dll
>> copies, because you'd otherwise have old copies somewhere, and you
>> never know which one is used).
>>
>> If you changed the OS PATH variable, you may need to reboot (I don't
>> know, and I won't try this for you), but it is much easier to copy
>> fltkdll.dll *only* to the same directory where you built your own
>> application (.exe file). You may also need the other 3 .dll files
>> you mentioned above, but I'm not sure.
>>
>> > I hope you can help me get these errors fixed.
>>
>> Okay, let's try this, and do only the steps I wrote above. Do not
>> rebuild fltk(dll), since this is probably okay.
>>
>> I'm not sure if and where these compiler macros are defined, but
>> please add them to your project for now, and let's see that later.
>>
>> If it doesn't work, please post your error messages again, and
>> describe what you did so far.
>>
>> HTH
>> Albrecht
>> _______________________________________________
>> fltk mailing list
>> [email protected]
>> http://lists.easysw.com/mailman/listinfo/fltk
>>
>
>
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to