Monthly Archives: May 2010

CMake: การเรียกใช้ไลบรารีภายนอก กรณีศึกษา OpenGL และ GLUT

แม้ปัจจุบันมีไลบรารีภาษา C/C++ ที่สามารถใช้ได้บนแพลตฟอร์มพลายแพลตฟอร์มอยู่มากมาย แต่การใช้ไลบรารีเหล่านั้นพัฒนาโปรแกรมยังเป็นเรื่องที่ยุ่งยาก เนื่องจากแพลตฟอร์มต่างๆ เก็บไลบรารีเหล่านี้ไว้ที่ไดเรคต่างๆ กัน CMake มีสคริปต์สำหรับค้นหาแตำแหน่งของไลบรารีที่ได้รับความนิยมอยู่หลายๆ ไลบรารี ทำให้การใช้ไลบรารีเหล่านี้เขียนโปรแกรมที่ใช้ได้หลายๆ แพลตฟอร์มเป็นเรื่องง่าย (แต่ก็ยังมีรายละเอียดมากพอสมควร) ในบทความนี้เราจะมาศึกษาวิธีการเรียกใช้สคริปต์เหล่านี้โดยใช้ไลบรารี OpenGL และ GLUT เป็นตัวอย่าง

Posted in c++, programming | Tagged , , , , , | Leave a comment

CMake: config.h และการตรวจสอบแพลตฟอร์ม

เราเคยกล่าวไปแล้วในบทความการใช้ CMake เบื้องต้น ว่าปัญหาหนึ่งที่โปรแกรมเมอร์ภาษา C++ ที่ต้องการเขียนโปรแกรมให้รันได้ในหลายแพลตฟอร์มเจอคือการที่แพลตฟอร์มต่างๆ มีไลบรารีและฟังก์ชันให้เรียกใช้ไม่เหมือนกัน ตัวอย่างหนึ่งคือฟังก์ชันสำหรับคืนชื่อไดเรคทอรีที่โปรแกรมทำงานอยู่ปัจจุบัน (current working directory) ซึ่งในระบบปฏิบัติการที่สืบเชื้อสายมาจาก Unix จะมีชื่อว่า getcwd และต้อง include ไฟล์ unistd.h เพื่อใช้งาน แต่ใน Windows ฟังก์ชันนี้กลับมีชื่อว่า _getcwd และต้อง include ไฟล์ direct.h แทน

Posted in c++, programming | Tagged , , , , , | Leave a comment

CMake: เมื่อโปรเจคมีหลาย “เป้าหมาย”

ในโปรเจคซอฟต์แวร์หนึ่งๆ อาจมีการสร้างโปรแกรมที่สามารถนำไปรันได้โดยตรง (executable) หรือไลบรารี (library) มากกว่าหนึ่งอันขึ้นไป (เพื่อให้ง่ายต่อการเขียน ผู้เขียนจะเรียกไฟล์ที่คอมไพเลอร์ภาษา C++ สร้างว่า target ตามที่ Xcode เรียก) ซึ่งอาจจะเป็นเพราะ target เหล่านี้เป็นโปรแกรมซึ่งทำงานสนับสนุนซึ่งกันและกัน หรือ target บางตัวเป็นไลบรารีซึ่ง target ตัวอื่นเรียกใช้ ในโพสต์นี้เราจะมาพูดถึงการเขียน CMakeLists.txt เพื่อสร้าง target หลายๆ target ในการ build ครั้งเดียว วิธีการเขียน CMakeLists.txt ให้บรรลุวัตถุประสงค์ข้างบนมีหลายวิธี เราจะนำเสนอวิธีการต่างๆ จากง่ายไปยาก โดยวิธีการที่ง่ายๆ นี้หมายความถึงวิธีการที่เขียนไฟล์ง่ายๆ สั้นๆ ไม่ต้องเสียแรงมาก … Continue reading

Posted in c++, programming | Tagged , , , | Leave a comment

การใช้ CMake เบื้องต้น

CMake (http://www.cmake.org/ และ http://en.wikipedia.org/wiki/Cmake) เป็นซอฟต์แวร์สำหรับสร้าง build script (ไฟล์ที่นิยามวิธีการคอมไพล์และลิงก์โปรแกรมและไลบรารีที่เขียนด้วยภาษา C++) ที่สามารถใช้ร่วมกับเครื่องมือพัฒนาโปรแกรมที่ได้รับความนิยมหลายๆ ตัว อาทิ Microsoft Visual C++, GNU Compiler Collection, Xcode, และ Eclipse CDT เป็นต้น การใช้ CMake ช่วยให้เรากำหนดซอฟต์แวร์ที่เราต้องการสร้างเพียงครั้งเดียว หลังจากนั้นเราสามารถพัฒนามันโดยใช้เครื่องมือที่เราชอบบนแพลตฟอร์มใดๆ ก็ได้ CMake จึงอำนวยช่วยความสะดวกให้กับโปรแกรมเมอร์ภาษา C++ ที่ต้องการสร้างซอฟต์แวร์ที่รันบนหลายๆ แพลตฟอร์มอย่างมาก ในบทความนี้เราจะกล่าวถึงวิธีการใช้งาน CMake จัดการซอฟต์แวร์โปรเจคง่ายๆ เป็นการปูพื้นฐานก่อนจะกล่าวถึงการใช้งานที่สลับซับซ้อนขึ้นต่อไป

Posted in c++, programming | Tagged , , , | 3 Comments