วันเสาร์ที่ 1 มีนาคม พ.ศ. 2557

กลับมาหา ภาษาที่คุ้นเคย, C++

ในที่สุดก็ต้องกลับมาภาษาที่คุ้นเคย C/C++ ดีใจได้เขียนแบบจริงๆ จังๆ อีกครั้ง โครงการดีด้วย...

จะว่าไป C/C++ เป็นภาษาเดียวในชีวิตที่ไม่ต้องเปิดคู่มือ (นอกจาก features ใหม่ๆ บางตัวใน C++11)

ทำให้สะท้านเหมือนกัน ตอนเรียน Go (lang) ก็ชอบวิธีการ assignment อย่าง
X := 12 // X เป็น Integer
ใน C++11 ก็มี
auto X = 12; 

ตอนปี 2008 ผมเคยซื้อ Library Qt ตอนนั้น พึ่งจะเป็น Release version 4.0 มีลูกค้าจ้างพัฒนาโปรแกรมสอง Platform ตือ OSX และ Windows ตัดสินใจจ่ายค่า Library ให้กับ Troll ไป เกือบสองแสนบาทสำหรับ สอง Platform 

สถานะ Qt ตอนนี้ มันสุดยอดจริงๆ นอกจากเขียนบน Linux, OSX, Windows ได้แล้ว ยัง Cross compile ไป iOS และ Android ได้อีก 
Android นี่สะดวกกว่าเพื่อน เขียนได้ทั้งบน Linux, OSX และ Windows เลย ส่วน iOS ต้องเขียนบน OSX

ตอนนี้ได้กลับมาใช้อีก ดีจัง (ตังค์อยู่ครบ)

แเละเหมือนเดิมคือ Oracle Call Interface สำหรับ Qt (QOCI) ไม่สามารถใช้ได้ ต้อง Build เอง เพราะต้องไป download OCI Library และรับทราบ License agreement ของ Oracle ก่อน 

วิธี Build QOCI บน OSX

download instanceclient มาจาก Oracle.com ตาม blog ก่อนหน้านี้ http://nanusorn.blogspot.com/2014/02/build-oracle-call-interface-golang.html

เวลา install Qt 5.2.x จะอยู่ที่ ~/Qt5.2.1 ให้ change directory ไปที่ ~/Qt5.2.1/5.2.1/Src/qtbase/src/plugins/sqldrivers/oci

$ export PATH=$PATH;~/Qt5.2.1/5.2.1/clang_64/bin

เรียก qmake สร้าง Makefile ใน folder ~/Qt5.2.1/5.2.1/Src/qtbase/src/plugins/sqldrivers/oci
$ qmake -o Makefile

แก้ Makefile.Release และ Makefile.Debug
โดยเพิ่ม -I/usr/lib/instantclient_11_2/sdk/include ที่ท้ายบรรทัด INCPATH
และ
เพิ่ม LFLAGS        += -L/usr/lib/instantclient_11_2 -lclntsh ใต้บรรทัด LFLAGS

แล้วเรียก 
$ make

วิธีนี้ง่ายสุด เร็วสุด ไม่ต้อง re-build Qt ทั้งตัว...

---------------------------------------------------------------
ถาม : กลับมาเขียน Qt เพื่อ?
ตอบ : เพื่อต้องการใช้ C++ เขียน Consumer สำหรับ rabbitMQ 

ถาม : แค่นี้หรือ?
ตอบ : ป่าวจะเอาไปเขียน Client Application บน Cubieboard ด้วย

ถาม : แล้วอย่างอื่นล่ะ?
ตอบ : ตอนนี้สนใจเอามาใช้พัฒนา Web Application ด้วยนะ เช่น
ตอบจริงๆ : ที่ว่ามาน่ะ ตอบเล่นๆ :p แต่เล่นจริงๆ นะ ปี๊ดส์ เลย



ไม่มีความคิดเห็น:

แสดงความคิดเห็น