FLTK on Visual Studio 2019 x64, "Cannot open include file: 'dirent.h': No such file or directory

209 views
Skip to first unread message

Tom Hogenkamp

unread,
May 6, 2021, 8:09:13 AM5/6/21
to fltk.general

I am using the FLTK library in Visual Studio Community 2019 and building my application for x86 works fine. Now, I would like to build it for x64. However, I am getting the error "Cannot open include file: 'dirent.h': No such file or directory.".

The error occurs in the file, named 'filename.H'. This header file comes with the FLTK library.

Has anyone an idea how I could fix this problem?

Update:

The dirent.h library is not recognized, because its an C POSIX library, as described in the link here below. However, the question still remains, namely, how can I fix this problem?

<dirent.h> in visual studio 2010 or 2008

The link above refers to a link with an alternative dirent.h file. I've tried to include this file in my project, however, now another errors occur. These errors occur in the file Fl_Native_File_Chooser.H. The type specifiers fl_OPENFILENAMEW and fl_BROWSEINFOW are unknown in this file.

Tom Hogenkamp

unread,
May 6, 2021, 8:09:21 AM5/6/21
to fltk.general

Albrecht Schlosser

unread,
May 6, 2021, 9:48:29 AM5/6/21
to fltkg...@googlegroups.com
On 5/6/21 1:53 PM Tom Hogenkamp wrote:
> I am using the FLTK library in Visual Studio Community 2019 and building
> my application for x86 works fine. Now, I would like to build it for
> x64. However, I am getting the error "Cannot open include file:
> 'dirent.h': No such file or directory.".
>
> The error occurs in the file, named 'filename.H'. This header file comes
> with the FLTK library.
>
> Has anyone an idea how I could fix this problem?

This error should not happen, all recent FLTK versions are known to
build fine with VS Community 2019.

We need more info about the exact version of FLTK you downloaded, is it
one of the 1.3 releases (latest is 1.3.6rc2), a FLTK 1.4 snapshot, or
one of the Git branches (master = 1.4 or branch-1.3).

If you're using 1.3, did you use the bundled IDE files, or did you use
CMake to generate FLTK.sln?

Please describe exactly what led to the error and post a little more
context (at least the full error message). To post here, please use copy
and paste, don't "describe" the error. Line numbers are important to
(maybe) see what's going wrong.

After a little research I found that VS Studio should NOT include
dirent.h at all. Your error seems to indicate that you are using 1.3.
Again, the questions above need to be answered, and then:

Dohh, after rereading your message I see "building my application for
x86 works fine", emphasis on "my application". If that's the case then
it's very likely that you only need to define the preprocessor macro
"WIN32" for your build to succeed.

What's the difference between your x86 build, how did you manage to
switch from x86 to x64?

> *Update:*
>
> The dirent.h library is not recognized, because its an C POSIX library,
> as described in the link here below. However, the question still
> remains, namely, how can I fix this problem?
>
> <dirent.h> in visual studio 2010 or 2008
> <https://stackoverflow.com/questions/5530933/dirent-h-in-visual-studio-2010-or-2008>

That's a very old link and it doesn't apply because dirent.h should not
be included in the first place, and the correct fix is to define WIN32
so it is not included by the given FLTK header.

Tom Hogenkamp

unread,
May 6, 2021, 11:19:35 AM5/6/21
to fltk.general
Thanks for your response, Albrecht.

The FLTK version that I am using is 1.3.5. For installation, I performed the steps in the following link, meaning that I used the bundled IDE files.


As I mentioned in my first post, the source code runs fine in x86. However, if I switch to build it for x64, I am getting errors. I also found that the preprocessor macro WIN32 is required to build in x64, however, if I include this macro, I am getting another errors in this case, which are linking errors. I've copied these errors here below. 

Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "public: virtual __cdecl Fl_Widget::~Fl_Widget(void)" (??1Fl_Widget@@UEAA@XZ) referenced in function "public: virtual __cdecl Fl_Box::~Fl_Box(void)" (??1Fl_Box@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Widget::~Fl_Widget(void)" (??1Fl_Widget@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Source.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Widget::~Fl_Widget(void)" (??1Fl_Widget@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Widget::~Fl_Widget(void)" (??1Fl_Widget@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2019 unresolved external symbol "public: void __cdecl Fl_Widget::redraw(void)" (?redraw@Fl_Widget@@QEAAXXZ) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: void __cdecl Fl_Widget::redraw(void)" (?redraw@Fl_Widget@@QEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2019 unresolved external symbol "public: virtual __cdecl Fl_Group::~Fl_Group(void)" (??1Fl_Group@@UEAA@XZ) referenced in function "public: virtual __cdecl Toolbar::~Toolbar(void)" (??1Toolbar@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Group::~Fl_Group(void)" (??1Fl_Group@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Source.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Group::~Fl_Group(void)" (??1Fl_Group@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "protected: virtual void __cdecl Fl_Window::draw(void)" (?draw@Fl_Window@@MEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "protected: virtual void __cdecl Fl_Window::flush(void)" (?flush@Fl_Window@@MEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Window::Fl_Window(int,int,char const *)" (??0Fl_Window@@QEAA@HHPEBD@Z) referenced in function "public: __cdecl MainWindow::MainWindow(void)" (??0MainWindow@@QEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: virtual __cdecl Fl_Window::~Fl_Window(void)" (??1Fl_Window@@UEAA@XZ) referenced in function "int `public: __cdecl MainWindow::MainWindow(void)'::`1'::dtor$0" (?dtor$0@?0???0MainWindow@@QEAA@XZ@4HA) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Window::~Fl_Window(void)" (??1Fl_Window@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Source.obj 1
Error LNK2001 unresolved external symbol "public: virtual int __cdecl Fl_Window::handle(int)" (?handle@Fl_Window@@UEAAHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Window::resize(int,int,int,int)" (?resize@Fl_Window@@UEAAXHHHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Window::show(void)" (?show@Fl_Window@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Window::show(void)" (?show@Fl_Window@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Source.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Window::hide(void)" (?hide@Fl_Window@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: virtual __cdecl Fl_Menu_::~Fl_Menu_(void)" (??1Fl_Menu_@@UEAA@XZ) referenced in function "public: virtual __cdecl Fl_Menu_Bar::~Fl_Menu_Bar(void)" (??1Fl_Menu_Bar@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Menu_::~Fl_Menu_(void)" (??1Fl_Menu_@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Source.obj 1
Error LNK2019 unresolved external symbol "public: int __cdecl Fl_Menu_::add(char const *,int,void (__cdecl*)(class Fl_Widget *,void *),void *,int)" (?add@Fl_Menu_@@QEAAHPEBDHP6AXPEAVFl_Widget@@PEAX@Z2H@Z) referenced in function "private: void __cdecl MainWindow::initialize_menu_bar(void)" (?initialize_menu_bar@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: int __cdecl Fl_Menu_::add(char const *)" (?add@Fl_Menu_@@QEAAHPEBD@Z) referenced in function "private: void __cdecl MainWindow::initialize_menu_bar(void)" (?initialize_menu_bar@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Menu_Bar::Fl_Menu_Bar(int,int,int,int,char const *)" (??0Fl_Menu_Bar@@QEAA@HHHHPEBD@Z) referenced in function "public: __cdecl MainWindow::MainWindow(void)" (??0MainWindow@@QEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Native_File_Chooser::Fl_Native_File_Chooser(int)" (??0Fl_Native_File_Chooser@@QEAA@H@Z) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Native_File_Chooser::~Fl_Native_File_Chooser(void)" (??1Fl_Native_File_Chooser@@QEAA@XZ) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: void __cdecl Fl_Native_File_Chooser::type(int)" (?type@Fl_Native_File_Chooser@@QEAAXH@Z) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: char const * __cdecl Fl_Native_File_Chooser::filename(void)const " (?filename@Fl_Native_File_Chooser@@QEBAPEBDXZ) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: void __cdecl Fl_Native_File_Chooser::directory(char const *)" (?directory@Fl_Native_File_Chooser@@QEAAXPEBD@Z) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: void __cdecl Fl_Native_File_Chooser::title(char const *)" (?title@Fl_Native_File_Chooser@@QEAAXPEBD@Z) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: void __cdecl Fl_Native_File_Chooser::filter(char const *)" (?filter@Fl_Native_File_Chooser@@QEAAXPEBD@Z) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: char const * __cdecl Fl_Native_File_Chooser::errmsg(void)const " (?errmsg@Fl_Native_File_Chooser@@QEBAPEBDXZ) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: int __cdecl Fl_Native_File_Chooser::show(void)" (?show@Fl_Native_File_Chooser@@QEAAHXZ) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "void __cdecl fl_register_images(void)" (?fl_register_images@@YAXXZ) referenced in function "public: __cdecl MainWindow::MainWindow(void)" (??0MainWindow@@QEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_PNG_Image::Fl_PNG_Image(char const *)" (??0Fl_PNG_Image@@QEAA@PEBD@Z) referenced in function "private: void __cdecl MainWindow::menu_open_action(void)" (?menu_open_action@MainWindow@@AEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2019 unresolved external symbol "public: virtual __cdecl Fl_Pixmap::~Fl_Pixmap(void)" (??1Fl_Pixmap@@UEAA@XZ) referenced in function "public: virtual __cdecl Toolbar::~Toolbar(void)" (??1Toolbar@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Pixmap::~Fl_Pixmap(void)" (??1Fl_Pixmap@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Source.obj 1
Error LNK2001 unresolved external symbol "public: virtual __cdecl Fl_Pixmap::~Fl_Pixmap(void)" (??1Fl_Pixmap@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "public: static int __cdecl Fl::run(void)" (?run@Fl@@SAHXZ) referenced in function main VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Source.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Widget::show(void)" (?show@Fl_Widget@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Widget::show(void)" (?show@Fl_Widget@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Widget::hide(void)" (?hide@Fl_Widget@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Widget::hide(void)" (?hide@Fl_Widget@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2001 unresolved external symbol "protected: virtual void __cdecl Fl_Group::draw(void)" (?draw@Fl_Group@@MEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual int __cdecl Fl_Group::handle(int)" (?handle@Fl_Group@@UEAAHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Group::resize(int,int,int,int)" (?resize@Fl_Group@@UEAAXHHHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Group::Fl_Group(int,int,int,int,char const *)" (??0Fl_Group@@QEAA@HHHHPEBD@Z) referenced in function "public: __cdecl Toolbar::Toolbar(int,int,int,int)" (??0Toolbar@@QEAA@HHHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Button::Fl_Button(int,int,int,int,char const *)" (??0Fl_Button@@QEAA@HHHHPEBD@Z) referenced in function "public: __cdecl Toolbar::Toolbar(int,int,int,int)" (??0Toolbar@@QEAA@HHHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Image::Fl_Image(int,int,int)" (??0Fl_Image@@QEAA@HHH@Z) referenced in function "public: __cdecl Fl_Pixmap::Fl_Pixmap(char const * const *)" (??0Fl_Pixmap@@QEAA@PEBQEBD@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "public: virtual __cdecl Fl_Image::~Fl_Image(void)" (??1Fl_Image@@UEAA@XZ) referenced in function "int `public: __cdecl Fl_Pixmap::Fl_Pixmap(char const * const *)'::`1'::dtor$0" (?dtor$0@?0???0Fl_Pixmap@@QEAA@PEBQEBD@Z@4HA) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "private: void __cdecl Fl_Pixmap::set_data(char const * const *)" (?set_data@Fl_Pixmap@@AEAAXPEBQEBD@Z) referenced in function "public: __cdecl Fl_Pixmap::Fl_Pixmap(char const * const *)" (??0Fl_Pixmap@@QEAA@PEBQEBD@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "protected: void __cdecl Fl_Pixmap::measure(void)" (?measure@Fl_Pixmap@@IEAAXXZ) referenced in function "public: __cdecl Fl_Pixmap::Fl_Pixmap(char const * const *)" (??0Fl_Pixmap@@QEAA@PEBQEBD@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual class Fl_Image * __cdecl Fl_Pixmap::copy(int,int)" (?copy@Fl_Pixmap@@UEAAPEAVFl_Image@@HH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Pixmap::color_average(unsigned int,float)" (?color_average@Fl_Pixmap@@UEAAXIM@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Pixmap::desaturate(void)" (?desaturate@Fl_Pixmap@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Pixmap::draw(int,int,int,int,int,int)" (?draw@Fl_Pixmap@@UEAAXHHHHHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Pixmap::label(class Fl_Widget *)" (?label@Fl_Pixmap@@UEAAXPEAVFl_Widget@@@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Pixmap::label(struct Fl_Menu_Item *)" (?label@Fl_Pixmap@@UEAAXPEAUFl_Menu_Item@@@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Pixmap::uncache(void)" (?uncache@Fl_Pixmap@@UEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\Toolbar.obj 1
Error LNK2019 unresolved external symbol "public: virtual int __cdecl Fl_Widget::handle(int)" (?handle@Fl_Widget@@UEAAHH@Z) referenced in function "public: virtual int __cdecl ZoomBox::handle(int)" (?handle@ZoomBox@@UEAAHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2001 unresolved external symbol "public: virtual void __cdecl Fl_Widget::resize(int,int,int,int)" (?resize@Fl_Widget@@UEAAXHHHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2001 unresolved external symbol "protected: virtual void __cdecl Fl_Box::draw(void)" (?draw@Fl_Box@@MEAAXXZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2019 unresolved external symbol "public: __cdecl Fl_Box::Fl_Box(int,int,int,int,char const *)" (??0Fl_Box@@QEAA@HHHHPEBD@Z) referenced in function "public: __cdecl ZoomBox::ZoomBox(int,int,int,int)" (??0ZoomBox@@QEAA@HHHH@Z) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1
Error LNK2001 unresolved external symbol "public: static int Fl::e_dy" (?e_dy@Fl@@2HA) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\ZoomBox.obj 1

I am also getting some warnings, which are the following.

Severity Code Description Project File Line Suppression State
Warning LNK4272 library machine type 'x86' conflicts with target machine type 'x64' VirtualAdvertisement C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64\fltk.lib 1
Warning LNK4272 library machine type 'x86' conflicts with target machine type 'x64' VirtualAdvertisement C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64\fltkzlib.lib 1
Warning LNK4272 library machine type 'x86' conflicts with target machine type 'x64' VirtualAdvertisement C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64\fltkimages.lib 1
Warning LNK4272 library machine type 'x86' conflicts with target machine type 'x64' VirtualAdvertisement C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64\fltkpng.lib 1
Warning LNK4272 library machine type 'x86' conflicts with target machine type 'x64' VirtualAdvertisement C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64\fltkjpeg.lib 1

Thanks in advance!

Op donderdag 6 mei 2021 om 15:48:29 UTC+2 schreef Albrecht Schlosser:

Greg Ercolano

unread,
May 6, 2021, 12:27:47 PM5/6/21
to fltkg...@googlegroups.com

These new errors appear to be link errors with your own app, and not FLTK itself.

Since it's complaining about practically every reference to FLTK means your app is not linking in the FLTK library; check your build settings to make sure you're linking with a path to the FLTK library files you built with x64.

lifeatt...@gmail.com

unread,
May 6, 2021, 4:52:32 PM5/6/21
to fltk.general
These messages:

>Warning LNK4272 library machine type 'x86' conflicts with target machine type 'x64' VirtualAdvertisement
>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\lib\x64\fltk.lib 1

suggest to me that you are trying to link your 64-bit code against 32-bit versions of the FLTK libraries. Or visa-versa, your 32 bit code against 64 bit FLTK.

They would probably also explain all the unresolved symbols.
Kevin

lifeatt...@gmail.com

unread,
May 6, 2021, 4:59:58 PM5/6/21
to fltk.general
With the DUMPBIN utility you can confirm if your library is 32-bit or 64-bit.

This command:

dumpbin /headers fltk.lib | more

will show a huge dump of info (which is why I sent it to 'more'). The first bits of info you'll see are something like:

Dump of file fltk.lib

File Type: LIBRARY

FILE HEADER VALUES
            8664 machine (x64)
               A number of sections
        5FD13075 time date stamp Wed Dec  9 15:15:49 2020
             635 file pointer to symbol table
              26 number of symbols
               0 size of optional header
               0 characteristics

As you can see [bolded] in the above, this particular fltk.lib file on my machine is built to x64.

Kevin

lifeatt...@gmail.com

unread,
May 6, 2021, 5:33:00 PM5/6/21
to fltk.general
Also using DUMPBIN, you can confirm what the symbols are inside your library.

For instance, from your error list:

Error LNK2019 unresolved external symbol "public: virtual __cdecl Fl_Widget::~Fl_Widget(void)" (??1Fl_Widget@@UEAA@XZ) referenced in function "public: virtual __cdecl Fl_Box::~Fl_Box(void)" (??1Fl_Box@@UEAA@XZ) VirtualAdvertisement C:\Users\Tom\source\repos\VirtualAdvertisement\VirtualAdvertisement\MainWindow.obj 1

Using Dumpbin, I searched for "Fl_Widget::~Fl_Widget(void)" in both the 32-bit and 64-bit versions of fltk.lib:

64-bit
dumpbin /symbols fltk.lib | find "Fl_Widget::~Fl_Widget" | more
04B 00000000 SECT5  notype ()    External     | ??1Fl_Widget@@UEAA@XZ (public: virtual __cdecl Fl_Widget::~Fl_Widget(void))

32-bit
dumpbin /symbols fltk.lib | find "Fl_Widget::~Fl_Widget" | more
065 00000000 SECT5  notype ()    External     | ??1Fl_Widget@@UAE@XZ (public: virtual __thiscall Fl_Widget::~Fl_Widget(void))

In your build, the linker is looking for ??1Fl_Widget@@UEAA@XZ which can be found in the 64-bit version, not the 32-bit version. Another confirmation that you are compiling your code as 64-bit but linking against a 32-bit version of fltk.lib.

I had difficulties making both the 32-bit and 64-bit versions of fltk because I was creating new configurations from within Visual Studio. I found that I had to check the Project Properties to confirm the settings were correct. For instance, I had to check both "Advanced \ Preferred Build Tool Architecture" AND "Librarian \ Additional Options" to insure consistent settings. 


Kevin
Reply all
Reply to author
Forward
0 new messages