From: Phil R. <p.d...@gm...> - 2017-07-10 09:48:40
|
Hi Arjen That looks like the class you are looking for. Those comments shouldn't be important. They just mean that you can access x and y exactly like in a C struct, for example wxSize mySize; mySize.x=4;. But the comment says please don't do this. Further down in that class is there a constructor? it will look something like wxSize( int w, int h). It looks like a function declaration, but with no return type. The variable names may be different too - probably some variation on width and height or x and y. On 10 July 2017 at 10:25, Arjen Markus <Arj...@de...> wrote: > Hi Phil, > > > > That is definitely a possibility. I had another search for wxSize. At first > I only found wxSizer (which is not the class I was looking for), but finally > I did – in a header file “gdicmn.h”: > > > > class WXDLLIMPEXP_CORE wxSize > > { > > public: > > // members are public for compatibility, don't use them directly. > > int x, y; > > > > I have no idea what to make of the comment … > > > > Regards, > > > > Arjen > > > > > > From: p.d...@gm... [mailto:p.d...@gm...] > Sent: Monday, July 10, 2017 10:59 AM > To: Arjen Markus; Alan W. Irwin > > > Subject: RE: The wxwidgets version you use for MSVC > > > > Hmm, I wonder if wxUSE_STRING_POS_CACHE is set during the wxWidgets build of > the dlls, but then not during the build of plplot. That would explain a > linker error there i think. > > > > You could search for wxSize::wxSize which should locate the constructors for > that class, if they exist. > > > > Phil > > > > Sent from my Windows 10 phone > > > > From: Arjen Markus > Sent: 10 July 2017 08:22 > To: p.d...@gm...; Alan W. Irwin > Subject: RE: The wxwidgets version you use for MSVC > > > > Hi Phil, > > > > See my answers below in context. > > > > Regards, > > > > Arjen > > > > > > From: p.d...@gm... [mailto:p.d...@gm...] > Sent: Monday, July 10, 2017 12:24 AM > To: Alan W. Irwin > Cc: Arjen Markus > Subject: RE: The wxwidgets version you use for MSVC > > > > Hi Arjen > > Have you built any other wxWidgets applications with this library version. > Also is there a chance that you could be accessing headers from a version > that s different to the dll? > > > >>>AM: I have not tried to build anything else. I had a “hello, world” >>> example, but I compiled that under MinGW and as that worked and the PLplot >>> build failed, I do not think it is representative for the current problem. > > > > Usually when I see wxString involved my first guess s a Unicode related flag > miss match. But with those two particular methods being unrelated and > probably relatively small functions, I wondered if they have been swapped > from inline to not inline between wx versions, and hence if you pick up a > header without inlined versions but a dll with inlined versions you will get > linker errors. Just a guess though. > > Also try using dependency walker or dumpbin (fed into grep if you have > access to it) to check if those methods or some variants are really in the > dll. > > > >>>AM: The libraries and header files come from the “official” wxWidgets >>> site. But they are the DLLs only, not the static ones. I searched for the >>> string “wxString” in the header files and the libraries (import and DLL), >>> but it is ubiquitous – 904 header files contain that string. Luckily that >>> was not the case for ~wxString. That is defined in the string.h header file, >>> but conditionally: > > > > #if wxUSE_STRING_POS_CACHE > > ~wxString() > > { > > // we need to invalidate our cache entry as another string could be > > // recreated at the same address (unlikely, but still possible, with > the > > // heap-allocated strings but perfectly common with stack-allocated > ones) > > InvalidateCache(); > > } > > #endif // wxUSE_STRING_POS_CACHE > > > > No such luck though with wxSize – 504 header files. > > > > I have not yet inspected the 34 DLLs … that is for later. > > DISCLAIMER: This message is intended exclusively for the addressee(s) and > may contain confidential and privileged information. If you are not the > intended recipient please notify the sender immediately and destroy this > message. Unauthorized use, disclosure or copying of this message is strictly > prohibited. The foundation 'Stichting Deltares', which has its seat at > Delft, The Netherlands, Commercial Registration Number 41146461, is not > liable in any way whatsoever for consequences and/or damages resulting from > the improper, incomplete and untimely dispatch, receipt and/or content of > this e-mail. > > > > DISCLAIMER: This message is intended exclusively for the addressee(s) and > may contain confidential and privileged information. If you are not the > intended recipient please notify the sender immediately and destroy this > message. Unauthorized use, disclosure or copying of this message is strictly > prohibited. The foundation 'Stichting Deltares', which has its seat at > Delft, The Netherlands, Commercial Registration Number 41146461, is not > liable in any way whatsoever for consequences and/or damages resulting from > the improper, incomplete and untimely dispatch, receipt and/or content of > this e-mail. |
From: Phil R. <p.d...@gm...> - 2017-07-10 10:02:27
|
I just checked in my version. I have class WXDLLIMPEXP_CORE wxSize { public: // members are public for compatibility, don't use them directly. int x, y; // constructors wxSize() : x(0), y(0) { } wxSize(int xx, int yy) : x(xx), y(yy) { } The last line is the important one. What does it look like in your version? I have just looked on GitHub on the latest source (https://github.com/wxWidgets/wxWidgets/blob/master/interface/wx/gdicmn.h) and this constructor has indeed changed to not inlined and instead looks like wxSize(int width, int height); I would suggest that there is some mismatch between the headers you have and the dll. The dll used inlined version, so includes no definition and the headers have the non inlined version so also includes no definition. The linker is therefore rightfully complaining there is no definition. If this is the case then it's a bug with the wxWidgets distribution. Phil On 10 July 2017 at 10:48, Phil Rosenberg <p.d...@gm...> wrote: > Hi Arjen > That looks like the class you are looking for. Those comments > shouldn't be important. They just mean that you can access x and y > exactly like in a C struct, for example wxSize mySize; mySize.x=4;. > But the comment says please don't do this. > > Further down in that class is there a constructor? it will look > something like wxSize( int w, int h). It looks like a function > declaration, but with no return type. The variable names may be > different too - probably some variation on width and height or x and > y. > > On 10 July 2017 at 10:25, Arjen Markus <Arj...@de...> wrote: >> Hi Phil, >> >> >> >> That is definitely a possibility. I had another search for wxSize. At first >> I only found wxSizer (which is not the class I was looking for), but finally >> I did – in a header file “gdicmn.h”: >> >> >> >> class WXDLLIMPEXP_CORE wxSize >> >> { >> >> public: >> >> // members are public for compatibility, don't use them directly. >> >> int x, y; >> >> >> >> I have no idea what to make of the comment … >> >> >> >> Regards, >> >> >> >> Arjen >> >> >> >> >> >> From: p.d...@gm... [mailto:p.d...@gm...] >> Sent: Monday, July 10, 2017 10:59 AM >> To: Arjen Markus; Alan W. Irwin >> >> >> Subject: RE: The wxwidgets version you use for MSVC >> >> >> >> Hmm, I wonder if wxUSE_STRING_POS_CACHE is set during the wxWidgets build of >> the dlls, but then not during the build of plplot. That would explain a >> linker error there i think. >> >> >> >> You could search for wxSize::wxSize which should locate the constructors for >> that class, if they exist. >> >> >> >> Phil >> >> >> >> Sent from my Windows 10 phone >> >> >> >> From: Arjen Markus >> Sent: 10 July 2017 08:22 >> To: p.d...@gm...; Alan W. Irwin >> Subject: RE: The wxwidgets version you use for MSVC >> >> >> >> Hi Phil, >> >> >> >> See my answers below in context. >> >> >> >> Regards, >> >> >> >> Arjen >> >> >> >> >> >> From: p.d...@gm... [mailto:p.d...@gm...] >> Sent: Monday, July 10, 2017 12:24 AM >> To: Alan W. Irwin >> Cc: Arjen Markus >> Subject: RE: The wxwidgets version you use for MSVC >> >> >> >> Hi Arjen >> >> Have you built any other wxWidgets applications with this library version. >> Also is there a chance that you could be accessing headers from a version >> that s different to the dll? >> >> >> >>>>AM: I have not tried to build anything else. I had a “hello, world” >>>> example, but I compiled that under MinGW and as that worked and the PLplot >>>> build failed, I do not think it is representative for the current problem. >> >> >> >> Usually when I see wxString involved my first guess s a Unicode related flag >> miss match. But with those two particular methods being unrelated and >> probably relatively small functions, I wondered if they have been swapped >> from inline to not inline between wx versions, and hence if you pick up a >> header without inlined versions but a dll with inlined versions you will get >> linker errors. Just a guess though. >> >> Also try using dependency walker or dumpbin (fed into grep if you have >> access to it) to check if those methods or some variants are really in the >> dll. >> >> >> >>>>AM: The libraries and header files come from the “official” wxWidgets >>>> site. But they are the DLLs only, not the static ones. I searched for the >>>> string “wxString” in the header files and the libraries (import and DLL), >>>> but it is ubiquitous – 904 header files contain that string. Luckily that >>>> was not the case for ~wxString. That is defined in the string.h header file, >>>> but conditionally: >> >> >> >> #if wxUSE_STRING_POS_CACHE >> >> ~wxString() >> >> { >> >> // we need to invalidate our cache entry as another string could be >> >> // recreated at the same address (unlikely, but still possible, with >> the >> >> // heap-allocated strings but perfectly common with stack-allocated >> ones) >> >> InvalidateCache(); >> >> } >> >> #endif // wxUSE_STRING_POS_CACHE >> >> >> >> No such luck though with wxSize – 504 header files. >> >> >> >> I have not yet inspected the 34 DLLs … that is for later. >> >> DISCLAIMER: This message is intended exclusively for the addressee(s) and >> may contain confidential and privileged information. If you are not the >> intended recipient please notify the sender immediately and destroy this >> message. Unauthorized use, disclosure or copying of this message is strictly >> prohibited. The foundation 'Stichting Deltares', which has its seat at >> Delft, The Netherlands, Commercial Registration Number 41146461, is not >> liable in any way whatsoever for consequences and/or damages resulting from >> the improper, incomplete and untimely dispatch, receipt and/or content of >> this e-mail. >> >> >> >> DISCLAIMER: This message is intended exclusively for the addressee(s) and >> may contain confidential and privileged information. If you are not the >> intended recipient please notify the sender immediately and destroy this >> message. Unauthorized use, disclosure or copying of this message is strictly >> prohibited. The foundation 'Stichting Deltares', which has its seat at >> Delft, The Netherlands, Commercial Registration Number 41146461, is not >> liable in any way whatsoever for consequences and/or damages resulting from >> the improper, incomplete and untimely dispatch, receipt and/or content of >> this e-mail. |
From: Arjen M. <Arj...@de...> - 2017-07-10 10:04:24
|
Hi Phil, Quite the same - see my earlier reply. Regards, Arjen > -----Original Message----- > From: Phil Rosenberg [mailto:p.d...@gm...] > Sent: Monday, July 10, 2017 12:02 PM > To: Arjen Markus; plp...@li... > Cc: Alan W. Irwin > Subject: Re: The wxwidgets version you use for MSVC > > I just checked in my version. I have > > class WXDLLIMPEXP_CORE wxSize > { > public: > // members are public for compatibility, don't use them directly. > int x, y; > // constructors > wxSize() : x(0), y(0) { } > wxSize(int xx, int yy) : x(xx), y(yy) { } > > The last line is the important one. What does it look like in your version? > > I have just looked on GitHub on the latest source > (https://github.com/wxWidgets/wxWidgets/blob/master/interface/wx/gdicmn.h) > and this constructor has indeed changed to not inlined and instead looks like > > wxSize(int width, int height); > > I would suggest that there is some mismatch between the headers you have and > the dll. The dll used inlined version, so includes no definition and the headers have > the non inlined version so also includes no definition. The linker is therefore > rightfully complaining there is no definition. If this is the case then it's a bug with the > wxWidgets distribution. > > Phil > > On 10 July 2017 at 10:48, Phil Rosenberg <p.d...@gm...> wrote: > > Hi Arjen > > That looks like the class you are looking for. Those comments > > shouldn't be important. They just mean that you can access x and y > > exactly like in a C struct, for example wxSize mySize; mySize.x=4;. > > But the comment says please don't do this. > > > > Further down in that class is there a constructor? it will look > > something like wxSize( int w, int h). It looks like a function > > declaration, but with no return type. The variable names may be > > different too - probably some variation on width and height or x and > > y. > > > > On 10 July 2017 at 10:25, Arjen Markus <Arj...@de...> wrote: > >> Hi Phil, > >> > >> > >> > >> That is definitely a possibility. I had another search for wxSize. At > >> first I only found wxSizer (which is not the class I was looking > >> for), but finally I did - in a header file "gdicmn.h": > >> > >> > >> > >> class WXDLLIMPEXP_CORE wxSize > >> > >> { > >> > >> public: > >> > >> // members are public for compatibility, don't use them directly. > >> > >> int x, y; > >> > >> > >> > >> I have no idea what to make of the comment ... > >> > >> > >> > >> Regards, > >> > >> > >> > >> Arjen > >> > >> > >> > >> > >> > >> From: p.d...@gm... [mailto:p.d...@gm...] > >> Sent: Monday, July 10, 2017 10:59 AM > >> To: Arjen Markus; Alan W. Irwin > >> > >> > >> Subject: RE: The wxwidgets version you use for MSVC > >> > >> > >> > >> Hmm, I wonder if wxUSE_STRING_POS_CACHE is set during the wxWidgets > >> build of the dlls, but then not during the build of plplot. That > >> would explain a linker error there i think. > >> > >> > >> > >> You could search for wxSize::wxSize which should locate the > >> constructors for that class, if they exist. > >> > >> > >> > >> Phil > >> > >> > >> > >> Sent from my Windows 10 phone > >> > >> > >> > >> From: Arjen Markus > >> Sent: 10 July 2017 08:22 > >> To: p.d...@gm...; Alan W. Irwin > >> Subject: RE: The wxwidgets version you use for MSVC > >> > >> > >> > >> Hi Phil, > >> > >> > >> > >> See my answers below in context. > >> > >> > >> > >> Regards, > >> > >> > >> > >> Arjen > >> > >> > >> > >> > >> > >> From: p.d...@gm... [mailto:p.d...@gm...] > >> Sent: Monday, July 10, 2017 12:24 AM > >> To: Alan W. Irwin > >> Cc: Arjen Markus > >> Subject: RE: The wxwidgets version you use for MSVC > >> > >> > >> > >> Hi Arjen > >> > >> Have you built any other wxWidgets applications with this library version. > >> Also is there a chance that you could be accessing headers from a > >> version that s different to the dll? > >> > >> > >> > >>>>AM: I have not tried to build anything else. I had a "hello, world" > >>>> example, but I compiled that under MinGW and as that worked and the > >>>>PLplot build failed, I do not think it is representative for the current problem. > >> > >> > >> > >> Usually when I see wxString involved my first guess s a Unicode > >> related flag miss match. But with those two particular methods being > >> unrelated and probably relatively small functions, I wondered if they > >> have been swapped from inline to not inline between wx versions, and > >> hence if you pick up a header without inlined versions but a dll with > >> inlined versions you will get linker errors. Just a guess though. > >> > >> Also try using dependency walker or dumpbin (fed into grep if you > >> have access to it) to check if those methods or some variants are > >> really in the dll. > >> > >> > >> > >>>>AM: The libraries and header files come from the "official" > >>>>wxWidgets site. But they are the DLLs only, not the static ones. I > >>>>searched for the string "wxString" in the header files and the > >>>>libraries (import and DLL), but it is ubiquitous - 904 header files > >>>>contain that string. Luckily that was not the case for ~wxString. > >>>>That is defined in the string.h header file, but conditionally: > >> > >> > >> > >> #if wxUSE_STRING_POS_CACHE > >> > >> ~wxString() > >> > >> { > >> > >> // we need to invalidate our cache entry as another string > >> could be > >> > >> // recreated at the same address (unlikely, but still possible, > >> with the > >> > >> // heap-allocated strings but perfectly common with > >> stack-allocated > >> ones) > >> > >> InvalidateCache(); > >> > >> } > >> > >> #endif // wxUSE_STRING_POS_CACHE > >> > >> > >> > >> No such luck though with wxSize - 504 header files. > >> > >> > >> > >> I have not yet inspected the 34 DLLs ... that is for later. > >> > >> DISCLAIMER: This message is intended exclusively for the addressee(s) > >> and may contain confidential and privileged information. If you are > >> not the intended recipient please notify the sender immediately and > >> destroy this message. Unauthorized use, disclosure or copying of this > >> message is strictly prohibited. The foundation 'Stichting Deltares', > >> which has its seat at Delft, The Netherlands, Commercial Registration > >> Number 41146461, is not liable in any way whatsoever for consequences > >> and/or damages resulting from the improper, incomplete and untimely > >> dispatch, receipt and/or content of this e-mail. > >> > >> > >> > >> DISCLAIMER: This message is intended exclusively for the addressee(s) > >> and may contain confidential and privileged information. If you are > >> not the intended recipient please notify the sender immediately and > >> destroy this message. Unauthorized use, disclosure or copying of this > >> message is strictly prohibited. The foundation 'Stichting Deltares', > >> which has its seat at Delft, The Netherlands, Commercial Registration > >> Number 41146461, is not liable in any way whatsoever for consequences > >> and/or damages resulting from the improper, incomplete and untimely > >> dispatch, receipt and/or content of this e-mail. DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Phil R. <p.d...@gm...> - 2017-07-10 10:18:20
|
Hi Arjen Doing a git blame on GitHub indicates that the relevant constructor line was last edited 10 years ago, which seems strange. However that is probably the header used when building the library rather than put in the include directory for use by external programs. Maybe the two are not the same :-s. If you are building with Visual studio, then you can find an example of wxSize being used and right click it, then go to definition/declaration. This should take you to the actual header file being parsed and you can check it is the one you expect (hover over the filename tab to show the full path or right click the tab and hit open containing folder) and you can check the constructor is inlined. Phil On 10 July 2017 at 11:10, Arjen Markus <Arj...@de...> wrote: > Hi Phil, > > > > I am using MSVC and nmake to compile this under bare Windows. I remember > seeing some confusion over what installation CMake came up with exactly, but > I do not recall the details. That may have been with the MinGW experiments. > > > > I will have to check this – tonight if possible. > > > > Regards, > > > > Arjen > > > >> -----Original Message----- >> From: Phil Rosenberg [mailto:p.d...@gm...] > >> Sent: Monday, July 10, 2017 12:04 PM >> To: Arjen Markus >> Subject: Re: The wxwidgets version you use for MSVC >> >> Ah, so you do have the inlined function definition. In that case I am >> confused. >> >> Is there any possibility that you have more than one set of wxWidgets >> headers >> installed, the one you are looking at and a latest dev version? >> >> What are you using to compile are you using visual studio or minGW? >> >> Phil >> >> On 10 July 2017 at 10:52, Arjen Markus <Arj...@de...> wrote: >> > Hi Phil, >> > >> > >> > >> >> -----Original Message----- >> >> From: Phil Rosenberg [mailto:p.d...@gm...] >> >> Sent: Monday, July 10, 2017 11:49 AM >> >> To: Arjen Markus; plp...@li... >> >> Cc: Alan W. Irwin >> >> Subject: Re: The wxwidgets version you use for MSVC >> >> >> >> Hi Arjen >> >> That looks like the class you are looking for. Those comments >> >> shouldn't be important. They just mean that you can access x and y >> >> exactly like in a C struct, for example wxSize mySize; mySize.x=4;. >> >> But the comment says please don't do this. >> >> >> > >> > Right, I misread that as meaning the data AND the method members, but >> > it only refers to the data members. >> > >> >> Further down in that class is there a constructor? it will look >> >> something like wxSize( int w, int h). It looks like a function >> >> declaration, but with no return type. The variable names may be >> >> different too - probably some variation on width and height or x and >> >> y. >> >> >> > There are two in fact: >> > >> > // constructors >> > >> > wxSize() : x(0), y(0) { } >> > >> > wxSize(int xx, int yy) : x(xx), y(yy) { } >> > >> > Regards, >> > >> > Arjen >> > >> > DISCLAIMER: This message is intended exclusively for the addressee(s) >> > and may contain confidential and privileged information. If you are >> > not the intended recipient please notify the sender immediately and >> > destroy this message. Unauthorized use, disclosure or copying of this >> > message is strictly prohibited. The foundation 'Stichting Deltares', >> > which has its seat at Delft, The Netherlands, Commercial Registration >> > Number 41146461, is not liable in any way whatsoever for consequences >> > and/or damages resulting from the improper, incomplete and untimely >> > dispatch, receipt and/or content of this e-mail. > > DISCLAIMER: This message is intended exclusively for the addressee(s) and > may contain confidential and privileged information. If you are not the > intended recipient please notify the sender immediately and destroy this > message. Unauthorized use, disclosure or copying of this message is strictly > prohibited. The foundation 'Stichting Deltares', which has its seat at > Delft, The Netherlands, Commercial Registration Number 41146461, is not > liable in any way whatsoever for consequences and/or damages resulting from > the improper, incomplete and untimely dispatch, receipt and/or content of > this e-mail. |
From: Phil R. <p.d...@gm...> - 2017-07-10 10:30:46
|
Last email of speculation I have found in the latest source that the file include/wx/gdicmn.h includes the inline definition for the constructor, but the file interface/wx/gdicmn.h does not include the inline definition for the constructor. The former should be used by external applications like ours, the latter is for building the wx libraries themselves. Is it possible that you are loading the latter somehow from somewhere? On 10 July 2017 at 11:18, Phil Rosenberg <p.d...@gm...> wrote: > Hi Arjen > Doing a git blame on GitHub indicates that the relevant constructor > line was last edited 10 years ago, which seems strange. However that > is probably the header used when building the library rather than put > in the include directory for use by external programs. Maybe the two > are not the same :-s. > > If you are building with Visual studio, then you can find an example > of wxSize being used and right click it, then go to > definition/declaration. This should take you to the actual header file > being parsed and you can check it is the one you expect (hover over > the filename tab to show the full path or right click the tab and hit > open containing folder) and you can check the constructor is inlined. > > Phil > > On 10 July 2017 at 11:10, Arjen Markus <Arj...@de...> wrote: >> Hi Phil, >> >> >> >> I am using MSVC and nmake to compile this under bare Windows. I remember >> seeing some confusion over what installation CMake came up with exactly, but >> I do not recall the details. That may have been with the MinGW experiments. >> >> >> >> I will have to check this – tonight if possible. >> >> >> >> Regards, >> >> >> >> Arjen >> >> >> >>> -----Original Message----- >>> From: Phil Rosenberg [mailto:p.d...@gm...] >> >>> Sent: Monday, July 10, 2017 12:04 PM >>> To: Arjen Markus >>> Subject: Re: The wxwidgets version you use for MSVC >>> >>> Ah, so you do have the inlined function definition. In that case I am >>> confused. >>> >>> Is there any possibility that you have more than one set of wxWidgets >>> headers >>> installed, the one you are looking at and a latest dev version? >>> >>> What are you using to compile are you using visual studio or minGW? >>> >>> Phil >>> >>> On 10 July 2017 at 10:52, Arjen Markus <Arj...@de...> wrote: >>> > Hi Phil, >>> > >>> > >>> > >>> >> -----Original Message----- >>> >> From: Phil Rosenberg [mailto:p.d...@gm...] >>> >> Sent: Monday, July 10, 2017 11:49 AM >>> >> To: Arjen Markus; plp...@li... >>> >> Cc: Alan W. Irwin >>> >> Subject: Re: The wxwidgets version you use for MSVC >>> >> >>> >> Hi Arjen >>> >> That looks like the class you are looking for. Those comments >>> >> shouldn't be important. They just mean that you can access x and y >>> >> exactly like in a C struct, for example wxSize mySize; mySize.x=4;. >>> >> But the comment says please don't do this. >>> >> >>> > >>> > Right, I misread that as meaning the data AND the method members, but >>> > it only refers to the data members. >>> > >>> >> Further down in that class is there a constructor? it will look >>> >> something like wxSize( int w, int h). It looks like a function >>> >> declaration, but with no return type. The variable names may be >>> >> different too - probably some variation on width and height or x and >>> >> y. >>> >> >>> > There are two in fact: >>> > >>> > // constructors >>> > >>> > wxSize() : x(0), y(0) { } >>> > >>> > wxSize(int xx, int yy) : x(xx), y(yy) { } >>> > >>> > Regards, >>> > >>> > Arjen >>> > >>> > DISCLAIMER: This message is intended exclusively for the addressee(s) >>> > and may contain confidential and privileged information. If you are >>> > not the intended recipient please notify the sender immediately and >>> > destroy this message. Unauthorized use, disclosure or copying of this >>> > message is strictly prohibited. The foundation 'Stichting Deltares', >>> > which has its seat at Delft, The Netherlands, Commercial Registration >>> > Number 41146461, is not liable in any way whatsoever for consequences >>> > and/or damages resulting from the improper, incomplete and untimely >>> > dispatch, receipt and/or content of this e-mail. >> >> DISCLAIMER: This message is intended exclusively for the addressee(s) and >> may contain confidential and privileged information. If you are not the >> intended recipient please notify the sender immediately and destroy this >> message. Unauthorized use, disclosure or copying of this message is strictly >> prohibited. The foundation 'Stichting Deltares', which has its seat at >> Delft, The Netherlands, Commercial Registration Number 41146461, is not >> liable in any way whatsoever for consequences and/or damages resulting from >> the improper, incomplete and untimely dispatch, receipt and/or content of >> this e-mail. |
From: Arjen M. <Arj...@de...> - 2017-07-10 11:06:07
|
Hi Phil, I will have to check that later. As far as I can tell, the build should be picking up everything from the installation and not gather stuff from elsewhere. It is unlikely it is scavenging the MinGW or Cywin installations. Anyway, got to check that. Regards, Arjen > -----Original Message----- > From: Phil Rosenberg [mailto:p.d...@gm...] > Sent: Monday, July 10, 2017 12:31 PM > To: Arjen Markus; Alan W. Irwin; plp...@li... > Subject: Re: The wxwidgets version you use for MSVC > > Last email of speculation > > I have found in the latest source that the file include/wx/gdicmn.h includes the inline > definition for the constructor, but the file interface/wx/gdicmn.h does not include the > inline definition for the constructor. The former should be used by external > applications like ours, the latter is for building the wx libraries themselves. Is it > possible that you are loading the latter somehow from somewhere? > > On 10 July 2017 at 11:18, Phil Rosenberg <p.d...@gm...> wrote: > > Hi Arjen > > Doing a git blame on GitHub indicates that the relevant constructor > > line was last edited 10 years ago, which seems strange. However that > > is probably the header used when building the library rather than put > > in the include directory for use by external programs. Maybe the two > > are not the same :-s. > > > > If you are building with Visual studio, then you can find an example > > of wxSize being used and right click it, then go to > > definition/declaration. This should take you to the actual header file > > being parsed and you can check it is the one you expect (hover over > > the filename tab to show the full path or right click the tab and hit > > open containing folder) and you can check the constructor is inlined. > > > > Phil > > > > On 10 July 2017 at 11:10, Arjen Markus <Arj...@de...> wrote: > >> Hi Phil, > >> > >> > >> > >> I am using MSVC and nmake to compile this under bare Windows. I > >> remember seeing some confusion over what installation CMake came up > >> with exactly, but I do not recall the details. That may have been with the MinGW > experiments. > >> > >> > >> > >> I will have to check this - tonight if possible. > >> > >> > >> > >> Regards, > >> > >> > >> > >> Arjen > >> > >> > >> > >>> -----Original Message----- > >>> From: Phil Rosenberg [mailto:p.d...@gm...] > >> > >>> Sent: Monday, July 10, 2017 12:04 PM > >>> To: Arjen Markus > >>> Subject: Re: The wxwidgets version you use for MSVC > >>> > >>> Ah, so you do have the inlined function definition. In that case I > >>> am confused. > >>> > >>> Is there any possibility that you have more than one set of > >>> wxWidgets headers installed, the one you are looking at and a latest > >>> dev version? > >>> > >>> What are you using to compile are you using visual studio or minGW? > >>> > >>> Phil > >>> > >>> On 10 July 2017 at 10:52, Arjen Markus <Arj...@de...> wrote: > >>> > Hi Phil, > >>> > > >>> > > >>> > > >>> >> -----Original Message----- > >>> >> From: Phil Rosenberg [mailto:p.d...@gm...] > >>> >> Sent: Monday, July 10, 2017 11:49 AM > >>> >> To: Arjen Markus; plp...@li... > >>> >> Cc: Alan W. Irwin > >>> >> Subject: Re: The wxwidgets version you use for MSVC > >>> >> > >>> >> Hi Arjen > >>> >> That looks like the class you are looking for. Those comments > >>> >> shouldn't be important. They just mean that you can access x and > >>> >> y exactly like in a C struct, for example wxSize mySize; mySize.x=4;. > >>> >> But the comment says please don't do this. > >>> >> > >>> > > >>> > Right, I misread that as meaning the data AND the method members, > >>> > but it only refers to the data members. > >>> > > >>> >> Further down in that class is there a constructor? it will look > >>> >> something like wxSize( int w, int h). It looks like a function > >>> >> declaration, but with no return type. The variable names may be > >>> >> different too - probably some variation on width and height or x > >>> >> and y. > >>> >> > >>> > There are two in fact: > >>> > > >>> > // constructors > >>> > > >>> > wxSize() : x(0), y(0) { } > >>> > > >>> > wxSize(int xx, int yy) : x(xx), y(yy) { } > >>> > > >>> > Regards, > >>> > > >>> > Arjen > >>> > > >>> > DISCLAIMER: This message is intended exclusively for the > >>> > addressee(s) and may contain confidential and privileged > >>> > information. If you are not the intended recipient please notify > >>> > the sender immediately and destroy this message. Unauthorized use, > >>> > disclosure or copying of this message is strictly prohibited. The > >>> > foundation 'Stichting Deltares', which has its seat at Delft, The > >>> > Netherlands, Commercial Registration Number 41146461, is not > >>> > liable in any way whatsoever for consequences and/or damages > >>> > resulting from the improper, incomplete and untimely dispatch, receipt and/or > content of this e-mail. > >> > >> DISCLAIMER: This message is intended exclusively for the addressee(s) > >> and may contain confidential and privileged information. If you are > >> not the intended recipient please notify the sender immediately and > >> destroy this message. Unauthorized use, disclosure or copying of this > >> message is strictly prohibited. The foundation 'Stichting Deltares', > >> which has its seat at Delft, The Netherlands, Commercial Registration > >> Number 41146461, is not liable in any way whatsoever for consequences > >> and/or damages resulting from the improper, incomplete and untimely > >> dispatch, receipt and/or content of this e-mail. > DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Alan W. I. <ir...@be...> - 2017-07-10 18:21:00
|
On 2017-07-10 11:05-0000 Arjen Markus wrote: [...] > As far as I can tell, the build should be picking up everything from the installation and not gather stuff from elsewhere. It is unlikely it is scavenging the MinGW or Cywin installations. Anyway, got to check that. Hi Arjen: I assume you are going to do that check using the nmake VERBOSE=1 option to discover the actual -I options your PLplot build uses for the wxwidgets components. At the same time you should check whether those -I options refer to locations that are too deep into the wxwidgets header tree so you are finding a private header rather than the correct public version of the header. And another option is for you to try a wxwidgets version that you built yourself with the exact build options you need in case that makes any difference. So there appears to be plenty of things you can try here to help you find the solution to the MSVC link error you discovered. Good luck during this hunt for the solution! Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Alan W. I. <ir...@be...> - 2017-07-10 21:36:32
|
On 2017-07-10 11:20-0700 Alan W. Irwin wrote: > On 2017-07-10 11:05-0000 Arjen Markus wrote: > > [...] >> As far as I can tell, the build should be picking up everything from > the installation and not gather stuff from elsewhere. It is unlikely > it is scavenging the MinGW or Cywin installations. Anyway, got to > check that. > > Hi Arjen: > > I assume you are going to do that check using the nmake VERBOSE=1 > option to discover the actual -I options your PLplot build uses for > the wxwidgets components. At the same time you should check whether > those -I options refer to locations that are too deep into the > wxwidgets header tree so you are finding a private header rather than > the correct public version of the header. And another option is for > you to try a wxwidgets version that you built yourself with the exact > build options you need in case that makes any difference. So there > appears to be plenty of things you can try here to help you find the > solution to the MSVC link error you discovered. Hi again, Arjen: Although it would be good to quickly check the above possibility that CMake might incorrectly find a private header rather than the desired public header, I now think the probability of that happening is low. The reason is the official version of the find module is heavily maintained (and therefore likely to get the -I options right). Furthermore, I have also checked all our changes to cmake/modules/FindwxWidgets.cmake relative to the official version, and they are completely straightforward and have nothing to do with -I options. Anyhow, I now think you have had all the input you need from Phil and me to fix or work around this wxwidgets linking issue you have discovered, and I look forward to hearing from you what the solution turns out to be. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2017-07-11 06:55:40
|
Hi Alan, Phil, Thanks for all the input and suggestions. I will try and find time this evening to hunt down the cause of these problems. Regards, Arjen > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > Sent: Monday, July 10, 2017 11:36 PM > To: Arjen Markus; Phil Rosenberg; plp...@li... > Subject: Re: [Plplot-devel] The wxwidgets version you use for MSVC > > On 2017-07-10 11:20-0700 Alan W. Irwin wrote: > > > On 2017-07-10 11:05-0000 Arjen Markus wrote: > > > > [...] > >> As far as I can tell, the build should be picking up everything from > > the installation and not gather stuff from elsewhere. It is unlikely > > it is scavenging the MinGW or Cywin installations. Anyway, got to > > check that. > > > > Hi Arjen: > > > > I assume you are going to do that check using the nmake VERBOSE=1 > > option to discover the actual -I options your PLplot build uses for > > the wxwidgets components. At the same time you should check whether > > those -I options refer to locations that are too deep into the > > wxwidgets header tree so you are finding a private header rather than > > the correct public version of the header. And another option is for > > you to try a wxwidgets version that you built yourself with the exact > > build options you need in case that makes any difference. So there > > appears to be plenty of things you can try here to help you find the > > solution to the MSVC link error you discovered. > > Hi again, Arjen: > > Although it would be good to quickly check the above possibility that CMake might > incorrectly find a private header rather than the desired public header, I now think > the probability of that happening is low. > The reason is the official version of the find module is heavily maintained (and > therefore likely to get the -I options right). > Furthermore, I have also checked all our changes to > cmake/modules/FindwxWidgets.cmake relative to the official version, and they are > completely straightforward and have nothing to do with -I options. > > Anyhow, I now think you have had all the input you need from Phil and me to fix or > work around this wxwidgets linking issue you have discovered, and I look forward to > hearing from you what the solution turns out to be. > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state implementation for > stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); > PLplot scientific plotting software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux > Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Arjen M. <Arj...@de...> - 2017-07-10 09:52:42
|
Hi Phil, > -----Original Message----- > From: Phil Rosenberg [mailto:p.d...@gm...] > Sent: Monday, July 10, 2017 11:49 AM > To: Arjen Markus; plp...@li... > Cc: Alan W. Irwin > Subject: Re: The wxwidgets version you use for MSVC > > Hi Arjen > That looks like the class you are looking for. Those comments shouldn't be > important. They just mean that you can access x and y exactly like in a C struct, for > example wxSize mySize; mySize.x=4;. > But the comment says please don't do this. > Right, I misread that as meaning the data AND the method members, but it only refers to the data members. > Further down in that class is there a constructor? it will look something like > wxSize( int w, int h). It looks like a function declaration, but with no return type. The > variable names may be different too - probably some variation on width and height > or x and y. > There are two in fact: // constructors wxSize() : x(0), y(0) { } wxSize(int xx, int yy) : x(xx), y(yy) { } Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |