Chào toàn thể thành viên của DNH,
Lan man về bản thân mình 1 chút cho dài dòng
Mình vốn là dev bên mảng PHP (cũng 5 năm từ lúc mới chập chững biết tới định nghĩa của 2 chữ lập trình) đi làm cũng đc gần 2 năm (sau khi trượt đại học và cũng không có cơ hội học ở trường lớp nào).
Từ lúc hứng viết cái App nhỏ trên Windows để nghịch thì mình có xài C++ (MFC) để làm và cũng từ đó thành C++Con (Fan) của nó luôn. Thế là quyết định vọc và làm mọi thứ bằng C++ (dù Main Job là PHP).
PHP mình học theo kiểu không hiểu chỗ nào thì search Internet cái đó, không sách vở cũng chả có kiến thức nguồn, thành ra sang C++ khá là khoai vì đi từ ngôn ngữ bậc cao xuống bậc thấp nó như kiểu sốc kiến thức.
Phạm vi vọc của mình từ lúc tìm hiểu C++ thì được mở rộng ra mảng game (Cocos2d-x), Cross platform App (đang tự viết cái GUI mà khoai quá)
Bữa thấy trên mạng có cái Framework CppCMS viết trên C++ nên hứng vọc cài luôn cho nóng.
Framework này được viết cách đây cũng vài năm tuy nhiên đến hiện tại vẫn được phát triển trên Github.
Trang chủ: http://cppcms.com/
Github: https://github.com/artyom-beilis/cppcms
Chuẩn bị:
- Linux/MacOS (Trong bài mình sử dụng Ubuntu 16.04)
// Đối với Windows thì mình chưa test nên cũng không biết rõ cách cài
Hướng dẫn cài đặt CppCMS và tạo trang “Hello World”:
Tải CppCMS về máy và giải nén:
Link: https://github.com/artyom-beilis/cppcms/archive/master.zip
Mở Terminal và gõ lệnh theo thứ tự:
cd cppcms-master
mkdir build
cd build
cmake ..
make # Chờ nó hơi lâu 1 chút (~3 phút gì đó)
sudo make install # Phải chạy bằng supper user nhé
Tạo trang để in dòng Hello World
- Tạo file hello.cpp (ở ngay root của thư mục cppcms-master) với nội dung:
#include <cppcms/application.h>
#include <cppcms/applications_pool.h>
#include <cppcms/service.h>
#include <cppcms/http_response.h>
#include <iostream>
class hello : public cppcms::application {
public:
hello(cppcms::service &srv) : cppcms::application(srv)
{
}
virtual void main(std::string url);
};
void hello::main(std::string /*url*/)
{
response().out() <<
"<html>\n"
"<body>\n"
" <h1>Hello World</h1>\n"
"</body>\n"
"</html>\n";
}
int main(int argc, char ** argv)
{
try {
cppcms::service srv(argc,argv);
srv.applications_pool().mount(
cppcms::applications_factory<hello>()
);
srv.run();
}
catch(std::exception const &e) {
std::cerr << e.what() << std::endl;
}
}
Chạy lệnh sau trên Terminal để build hello.cpp:
c++ hello.cpp -lcppcms -o hello
Tạo file config.js để cấu hình server:
{
"service" : {
"api" : "http",
"port" : 8080
},
"http" : {
"script_names" : [ "/hello" ]
}
}
Chạy server:
./hello -c config.js
// Đoạn này nếu bạn nào bị lỗi:
./hello: error while loading shared libraries: libcppcms.so.1: cannot open shared object file: No such file or directory
thì mở terminal gõ lệnh sau:
cd build # Trỏ đến thư mục vừa mới make install
sudo cp libcppcms.so /usr/lib/libcppcms.so.1
rồi gõ lại lệnh ./hello -c config.js
Mở trình duyệt gõ link:
Vậy là xong rồi.