C++ compiler extension in chrome

Hôm nay mình được nghỉ lễ, không biết làm gì nên học theo bác X (nào đó), kiếm cái nghịch để đốt thời gian, tiện thể học thêm cái mới.

Nghĩ chán chê thì thấy dạo này hay lượn lờ trên DNH support code C++(mặc dù chuyên ngành của mình là ăn và ngủ). Rút kinh nghiệm mỗi lần thử code lại phải mở trang paiza.io hay ideone.com gì gì ấy để test, tốn rất nhiều công đoạn click, nên viết luôn cái extension này, chỉ copy paste và run là xong (viết xong mới thấy còn khổ hơn click).

Lúc viết xong mới nghĩ ra publish lên google store, cứ tưởng miễn phí, ngờ đâu anh gồ bắt xì ra $5 mới cho, nghĩ thấy anh gồ giàu sẵn rồi, thiếu gì $5 của mình, nên thôi không publish lên nữa :weary:

Extension mình viết bằng ReactJS là chính (có chút tạp nham jquery vì chưa quen xử lí toàn bộ thông qua React)

Demo extension:
UI:

Hello world thần thánh:

#Hướng dẫn cài:

Các bạn tải và giải nén:
https://github.com/HadesD/Chrome-Cpp-Complier/blob/master/release.zip
Mở chrome và truy cập:

chrome://extensions/

Tích vào ô Developer Mode -> Click nut Load unpacked extension… -> Chọn folder có chứa extension bạn vừa giải nén.

Vậy là xong.

GitHub project

https://github.com/HadesD/Chrome-Cpp-Complier

6 Likes

Làm sao làm được như vậy? Compiler này compile được những gì?

1 Like

Chỉ là dùng tính năng có sẵn của những trang web cho compile code thôi chứ không có gì to tát cả :fearful:
Tính năng chính thì là complie và test code C++, mặc dù có thể compile multi file và ngôn ngữ, cơ mà lười nên chỉ làm C++
Ở đây mình dùng thằng paiza.io
https://github.com/HadesD/Chrome-Cpp-Complier/blob/master/src/js/main.jsx

1 Like

:smile: có gì đâu mà không có gì to tát. Chứ mấy ông lập trình ra mấy cái trang web cũng nhờ mấy ông đọc mã máy mà ra chứ có gì to tát đâu.
Em nghĩ là nên cho cookie hay gì đó để có thể lưu source code đang code dỡ. new default source thì nên là của chương trình Hello world. Cho người dùng tải source code về nữa hoặc kĩ càng hơn là giúp họ có mộn bản codepad online. :smile:

2 Likes

Nếu đợt nghỉ lễ tới mà rảnh nhất định sẽ thêm các tính năng này.
Google họ không cho lưu thông tin extension vào database của họ, lại phải dùng của bên thứ 3 nên hơi mất thời gian khoản này, lại lười nữa :weary:

1 Like

nghiên cứu cái Stack Crooked ấy. GCC 7.1.0, có GMP, có Boost mới nhất luôn, có hỗ trợ multiple file nhưng mà phải đổi tên file

http://coliru.stacked-crooked.com/a/084011623191a688

C++17 + Boost + GMP :joy:

#include <iostream>
#include <string>
#include <variant>
#include <boost/multiprecision/gmp.hpp>

using boost::multiprecision::mpz_int;

std::tuple<int, std::string, double> getTuple()
{
    return {101, std::string("Hello"), 9.75};
}

int main()
{
    std::variant<std::string, mpz_int> x;
    x = std::string("123456789123456789");
    std::cout << "x = " << std::get<std::string>(x) << "\n";
    
    x = mpz_int(std::get<std::string>(x));
    x = std::get<mpz_int>(x) * std::get<mpz_int>(x);
    std::cout << "x = " << std::get<mpz_int>(x) << "\n";
    
    auto [id, msg, score] = getTuple();
    std::cout << id << " " << msg << " " << score << "\n";
}

làm ra 1 cái js file để nhúng vô trang web đi

2 Likes

Mà nhìn UI nó xấu nhỉ :joy:
Có trang này do ông người nhật viết, thấy cũng ổn định, có tuỳ chọn options build, G++ 8.0.0, compile nhiều file 1 lần, nhiều ngôn ngữ, UI cũng ổn.
Có public project trên github nữa: https://github.com/melpon/wandbox
https://wandbox.org/

Test: https://wandbox.org/permlink/P3fDcpcIRWwzErdL

Tại hôm bữa hứng học React nên viết cái ext luôn :grinning:
Có lẽ chuyển qua viết 1 file js nhanh hơn

2 Likes

trang này quá ngon.

20 chả

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?