When running the make command I am getting the following errors when trying to build designwtedit.cpp: I have wt3.3.7rc2 installed on my computer. Can I only use 3.3.6?
[ 69%] Building CXX object projects/DesignerWt/src/CMakeFiles/DesignerWt.dir/designwtedit.cpp.o
In file included from /usr/local/include/Wt/WApplication:25:0,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/external.hpp:22,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/designwt.h:13,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.h:11,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:7:
/usr/local/include/Wt/WObject: In member function ‘DSNode& DSNode::operator=(const DSNode&)’:
/usr/local/include/Wt/WObject:530:12: error: ‘Wt::WObject& Wt::WObject::operator=(const Wt::WObject&)’ is private
WObject &operator =(const WObject &);
^
In file included from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/designwt.h:25:0,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.h:11,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:7:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/dsnode.h:95:7: error: within this context
class DSNode : public Wt::WObject
^
In file included from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.h:12:0,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:7:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/dsnodeedit.h: In member function ‘DSNodeEdit& DSNodeEdit::operator=(const DSNodeEdit&)’:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/dsnodeedit.h:17:7: note: synthesized method ‘DSNode& DSNode::operator=(const DSNode&)’ first required here
class DSNodeEdit : public DSNode
^
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp: In member function ‘DSNodeEdit DesignWtEdit::copyLevel(DSNode, bool, bool’:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:1059:16: note: synthesized method ‘DSNodeEdit& DSNodeEdit::operator=(const DSNodeEdit&)’ first required here pDestNode = (DSNodeEdit *)pNode;
Thanks,
Ron
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This sort of make error seems to be associated with the wrong version of Wt being found by the compiler. I note that the included files in the error messages are in the /usr/local/include/Wt tree, rather than /usr/include/Wt which is what I would expect.
Did you build Wt from source? I find that the versions in debian/ubuntu repositories, for example, are out of date and DesignerWt does not work with them. If you use a browser to open /home/rtidwell/4sys/DesignerWtSDK-2.0.0/DocSource/xhtmlf/help.html and navigate to section 8.1.1, there are instructions for building Wt from source (it takes a while).
It is important to include the instruction -DCMAKE_INSTALL_PREFIX=/usr in your cmake command line. If you did build Wt from source, and you forgot to do this, navigate to the build directory where you built it and run sudo make uninstall to remove the version which has been installed to /usr/local before you attempt to rebuild Wt.
Please let me know what distribution you are using and how you compiled Wt if these notes don't help, and I will try to fix your issue.
Eoin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I removed all WT items ( I had both 3.3.6 and 3.3.7-rc2). I recompiled wt 3.3.7-rc2. using the make and sudo make install. It completes with no problems.
When I go back to DesignerWtSDK-2.0.0/build and I am still getting the same errors when running the make. I did run the cmake .. first and it had no problems.
I am using the followinf command to build wt 3.3.7-rc2:
I'm sorry that this is frustrating you. The DesignerWt build should include the version of Wt that you built from source, and that should put the include files in /usr/include/Wt/WObject. However, if files exist in /usr/local/include/Wt/WObject the standard include path will find them before any ones in /usr/include/Wt.
If you have definitely got a WObject file in both /usr/include/Wt and /usr/local/include/Wt, then there is a problem. If you use an editor to look at the top of a file called WConfig.h in each directory, there is a #define WT_VERSION_STRline which declared the Wt version whose files are included in that directory. I suspect that you have a version less than 3.3.6 in the local directory, and our DesignerWt compile is finding those files instead.
My suggestion would be to make a new DesignerWt build directory and recompile with slightly changed options:
cd /home/rtidwell/4sys/DesignerWtSDK-2.0.0/
mkdir build2
cd build2
cmake -DCMAKE_INCLUDE_PATH=/usr/include ..
make -j4
I haven't tried this, but it should direct cmake to tell make to look in /usr/include rather than usr/local/include when trying to link the project.
Failing that, you could try sudo mv /usr/local/include/Wt /root, then doing the DesignerWt build as above, then put the directory back (as something else might expect to use it) with sudo mv /root/Wt /usr/local/include. Of course, this last effort is a dangerous move as I don't know what could have put the include files there and whatever it is could break.
I'll try to run up a CentOS virtual machine and see if I can replicate your problem tomorrow, I hope that my suggestions will help, though.
Regards Eoin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Please stick to Wt version 3.3.6 for the moment: we haven't evaluated the rc2 version yet.
Cmake tends to cache certain variables between runs which gets in the way as much as it helps. This is the reason for my suggestion that you use a clean new build directory for each run of cmake until it successfully compiles. So if my first suggestion doesn't work, I suggest that you remove the build2 directory entirely before trying any tweaks. Good luck.
EDIT: our posts are crossing: it won't work to just move include trees or library trees from /usr/include to /usr/local/include. The files contain references which are calculated based on their location. DesignerWt expects to find Wt in /usr, not /usr/local, and is designed to be installed at /usr too.
EDITEDIT: The error message in your 21:18 post [52%].... indicates that your machine is trying to build DesignerWt to /usr/local. It should not do that if cmake is run in a clean new directory.
Regards,
Eoin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I will go back to 3.3.6. Is was working fine. All this started when I upgraded to 3.3.7-rc2, this fixed a problem with libpango returning a font is does not like. THe method I found to fix the problem did not work so I was going to try 3.3.7 as say it was fixed in that version.
I have been using 3.3.6 with DesignerWT for couple of months now.
Thanks for you Help!!!!
Ron
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
When running the make command I am getting the following errors when trying to build designwtedit.cpp: I have wt3.3.7rc2 installed on my computer. Can I only use 3.3.6?
[ 69%] Building CXX object projects/DesignerWt/src/CMakeFiles/DesignerWt.dir/designwtedit.cpp.o
In file included from /usr/local/include/Wt/WApplication:25:0,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/external.hpp:22,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/designwt.h:13,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.h:11,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:7:
/usr/local/include/Wt/WObject: In member function ‘DSNode& DSNode::operator=(const DSNode&)’:
/usr/local/include/Wt/WObject:530:12: error: ‘Wt::WObject& Wt::WObject::operator=(const Wt::WObject&)’ is private
WObject &operator =(const WObject &);
^
In file included from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/designwt.h:25:0,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.h:11,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:7:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/DWTRuntime/dsnode.h:95:7: error: within this context
class DSNode : public Wt::WObject
^
In file included from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.h:12:0,
from /home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:7:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/dsnodeedit.h: In member function ‘DSNodeEdit& DSNodeEdit::operator=(const DSNodeEdit&)’:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/dsnodeedit.h:17:7: note: synthesized method ‘DSNode& DSNode::operator=(const DSNode&)’ first required here
class DSNodeEdit : public DSNode
^
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp: In member function ‘DSNodeEdit DesignWtEdit::copyLevel(DSNode, bool, bool’:
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/projects/DesignerWt/src/designwtedit.cpp:1059:16: note: synthesized method ‘DSNodeEdit& DSNodeEdit::operator=(const DSNodeEdit&)’ first required here
pDestNode = (DSNodeEdit *)pNode;
Thanks,
Ron
Hi Ron,
This sort of make error seems to be associated with the wrong version of Wt being found by the compiler. I note that the included files in the error messages are in the
/usr/local/include/Wttree, rather than/usr/include/Wtwhich is what I would expect.Did you build Wt from source? I find that the versions in debian/ubuntu repositories, for example, are out of date and DesignerWt does not work with them. If you use a browser to open
/home/rtidwell/4sys/DesignerWtSDK-2.0.0/DocSource/xhtmlf/help.htmland navigate to section 8.1.1, there are instructions for building Wt from source (it takes a while).It is important to include the instruction
-DCMAKE_INSTALL_PREFIX=/usrin your cmake command line. If you did build Wt from source, and you forgot to do this, navigate to the build directory where you built it and runsudo make uninstallto remove the version which has been installed to /usr/local before you attempt to rebuild Wt.Please let me know what distribution you are using and how you compiled Wt if these notes don't help, and I will try to fix your issue.
Eoin
Hi Eoin,
I am building on CentOS7.3 from source code.
I removed all WT items ( I had both 3.3.6 and 3.3.7-rc2). I recompiled wt 3.3.7-rc2. using the make and sudo make install. It completes with no problems.
When I go back to DesignerWtSDK-2.0.0/build and I am still getting the same errors when running the make. I did run the cmake .. first and it had no problems.
I am using the followinf command to build wt 3.3.7-rc2:
cmake ../ -DWT_WRASTERIMAGE_IMPLEMENTATION=GraphicsMagick -DWT_CPP_11_MODE=-std=c++0x -DCMAKE_INSTALL_PREFIX=/usr
It is the same when I buildt wt 3.3.6. Everything work on the build.
Thanks,
Ron
Hi Ron,
I'm sorry that this is frustrating you. The DesignerWt build should include the version of Wt that you built from source, and that should put the include files in
/usr/include/Wt/WObject. However, if files exist in/usr/local/include/Wt/WObjectthe standard include path will find them before any ones in/usr/include/Wt.If you have definitely got a WObject file in both /usr/include/Wt and /usr/local/include/Wt, then there is a problem. If you use an editor to look at the top of a file called WConfig.h in each directory, there is a
#define WT_VERSION_STRline which declared the Wt version whose files are included in that directory. I suspect that you have a version less than 3.3.6 in the local directory, and our DesignerWt compile is finding those files instead.My suggestion would be to make a new DesignerWt build directory and recompile with slightly changed options:
I haven't tried this, but it should direct cmake to tell make to look in /usr/include rather than usr/local/include when trying to link the project.
Failing that, you could try
sudo mv /usr/local/include/Wt /root, then doing the DesignerWt build as above, then put the directory back (as something else might expect to use it) withsudo mv /root/Wt /usr/local/include. Of course, this last effort is a dangerous move as I don't know what could have put the include files there and whatever it is could break.I'll try to run up a CentOS virtual machine and see if I can replicate your problem tomorrow, I hope that my suggestions will help, though.
Regards Eoin
Hi Eoin
I looked at /usr/local/include/ and the was WT tree. I remove it. I then ran cmake .. okay but make failed with the error:
[ 52%] Built target qtcreator make[2]: *** No rule to make target
/usr/local/lib/libwthttp.so', needed bytinyxml/libtinyxml.so'. Stop.make[1]: *** [tinyxml/CMakeFiles/tinyxml.dir/all] Error 2
make: *** [all] Error 2
I copied the Wt tree from usr/include to usr/local/include but still get the same error.
I also copied the libs to usr/local/lib
Do I need to reinstall DesingerWT? If I have to do this, is the .dwo and source code all I need to save so I don't lose what I have done already?
Hi Eoin,
I try will you above suggestion and let you know.
Thanks,
Ron
Hi Eoin,
There are 3 files with that name. two are local, in the local directory for wt 3.3.6 and wt-3.3.7-rc2.
The one in usr/include/Wt has the following : #define WT_VERSION_STR "3.3.7"
I will try rebuilding DesignerWT and let you know. DesignerWt was built when I had wt version 3.3.6.
Thanks,
Ron
Hi Ron,
Please stick to Wt version 3.3.6 for the moment: we haven't evaluated the rc2 version yet.
Cmake tends to cache certain variables between runs which gets in the way as much as it helps. This is the reason for my suggestion that you use a clean new build directory for each run of cmake until it successfully compiles. So if my first suggestion doesn't work, I suggest that you remove the build2 directory entirely before trying any tweaks. Good luck.
EDIT: our posts are crossing: it won't work to just move include trees or library trees from /usr/include to /usr/local/include. The files contain references which are calculated based on their location. DesignerWt expects to find Wt in /usr, not /usr/local, and is designed to be installed at /usr too.
EDITEDIT: The error message in your 21:18 post [52%].... indicates that your machine is trying to build DesignerWt to /usr/local. It should not do that if cmake is run in a clean new directory.
Regards,
Eoin
I will go back to 3.3.6. Is was working fine. All this started when I upgraded to 3.3.7-rc2, this fixed a problem with libpango returning a font is does not like. THe method I found to fix the problem did not work so I was going to try 3.3.7 as say it was fixed in that version.
I have been using 3.3.6 with DesignerWT for couple of months now.
Thanks for you Help!!!!
Ron