Webtoolkit
Jump to navigation
Jump to search
Environment
# cat /etc/debian_version 6.0.6 # gcc -v gcc version 4.4.5 (Debian 4.4.5-8) # uname -r 3.2.0-0.bpo.3-amd64
Depends
apt-get install libwt-dev libwtfcgi-dev libapache2-mod-fastcgi a2enmod fastcgi
Apache config
from http://whocares.de/fastcgiexternalserver-demystified/all/1/
<IfModule mod_fastcgi.c> FastCGIExternalServer /tmp/my_app.fastcgi -host 127.0.0.1:9000 Alias /my_app /tmp/my_app.fastcgi </IfModule>
First Wt app
#include <Wt/WApplication> #include <Wt/WBreak> #include <Wt/WContainerWidget> #include <Wt/WLineEdit> #include <Wt/WPushButton> #include <Wt/WText> class HelloApplication : public Wt::WApplication { public: HelloApplication(const Wt::WEnvironment& env); private: Wt::WLineEdit *nameEdit_; Wt::WText *greeting_; void greet(); }; HelloApplication::HelloApplication(const Wt::WEnvironment& env) : Wt::WApplication(env) { setTitle("Hello world"); root()->addWidget(new Wt::WText("Your name, please ? ")); nameEdit_ = new Wt::WLineEdit(root()); Wt::WPushButton *button = new Wt::WPushButton("Greet me.", root()); root()->addWidget(new Wt::WBreak()); greeting_ = new Wt::WText(root()); button->clicked().connect(this, &HelloApplication::greet); } void HelloApplication::greet() { greeting_->setText("Hello there, " + nameEdit_->text()); } Wt::WApplication *createApplication(const Wt::WEnvironment& env) { return new HelloApplication(env); } int main(int argc, char **argv) { return Wt::WRun(argc, argv, &createApplication); }
Compile
g++ -lwtfcgi -lwt my_app.cpp -o myapp
Create config file
nano wt_config.xml
<server> <application-settings location="*"> <connector-fcgi> <run-directory>/tmp</run-directory> </connector-fcgi> <debug>true</debug> <log-file>/tmp/wt.log</log-file> </application-settings> </server>
Running spawned process
WT_CONFIG_XML=wt_config.xml spawn-fcgi -n -p 9000 ./myapp
See the result on http://localhost/my_app
Set-up an Eclipse CDT project =
Create an Eclipse project, maybe like there
Configure to Run and Debug
- Run -> Debug Configurations
- select 'C/C++ Application'
- click on 'New launch configuration'
- Name: "TestWt Spawned"
- C/C++ Application: "/usr/bin/spawn-fcgi"
- switch to tab 'Arguments'
- Program arguments: "-n -p 9000 build/debug/TestWt"
- Working directory: "${workspace_loc:TestWt/TestWt}"
- switch to tab 'Environment'
- click New...
- Name: "WT_CONFIG_XML"
- Value: "wt_config.xml"
- click Ok
- switch to tab 'Debugger'
- check 'Non-stop mode'
- check 'Automatically debug forked processes'
- click on Close
Now you can see the debug working, and run the page on http://localhost/my_app