Thursday, March 28

How to implement system variables on Visual C++ Project

วันนี้ จะมาแนะนำการสร้างตัวแปร system variables เพื่อนำตัวแปรนี้ไปอ้างอิงในการกำหนดค่า path ใน Project ของ Visual C++ ครับ จากครั้งที่แล้ว เราได้สร้างโปรเจค HelloOpenCV กันไปแล้ว จะเห็นได้ว่า กว่าจะกำหนดค่าต่างๆ ให้กับโปรเจคนั้น ค่อนข้างมีรายละเอียดยุบยิบ เต็มไปหมด (นี่ยังไม่รวมถึงขั้นตอนเขียนโปรแกรมนะ) ทีนี้ เราจะมาลองใช้ลูกเล่น system variables ใน  Environment variables ใน windows กันดูครับ

เริ่มจากเปิด Environment variables ที่ system variables คลิกที่ New
จะมีหน้าต่าง dialog ขึ้นมา ให้เรากำหนดค่าดังนี้

Variable name : OPENCV_DIR
Variable value : E:\software\opencv

จุดประสงค์ก็คือ เราต้องการให้ตัวแปร OPENCV_DIR ซึ่งต่อไปเราจะเรียกใช้ด้วยการอ้างถึง $(OPENCV_DIR) มีค่าเท่ากับ E:\software\opencv ซึ่งเป็นการอ้างถึง directory path ที่อยู่ของไฟล์ต่างๆ ใน  E:\software\opencv นั่นเอง

กำหนดเสร็จแล้วให้กด OK แล้วก็รีสตาร์ทคอมพิวเตอร์ 1 ครั้ง

system variables

กลับมาที่โปรเจค HelloOpenCV ที่เราได้เคยสร้างไว้แล้ว ให้ทำการเปลี่ยนแปลงค่าต่างๆ ที่เราเคยกำหนดไว้ จากตอนที่แล้ว โดยให้เปลี่ยนแปลงตั้งแต่ E:\software\opencv ให้กลายเป็น $(OPENCV_DIR)

refer to system variables

เช่น ผมเคยกำหนดให้
จากเดิม E:\software\opencv\build\include\opencv
เปลี่ยนเป็น $(OPENCV_DIR)\build\include\opencv

เปลี่ยนให้หมดเลยนะครับ ทุกที่ ที่เราเคยกำหนด path มันไว้ เสร็จแล้วก็ลอง Build Solution ใหม่อีกครั้ง ซึ่้งก็ควรจะ build ผ่าน เหมือนที่มันเคย build ผ่านมาก่อน
หลายคนอาจจะสงสัยว่า ทำแบบนี้ มันดีอย่างไร นอกจากได้การได้การเรียก path ที่สั้นลง

อย่างแรกนะครับ ลองนึกดูเล่นๆ นะครับ หากผมกับเพือน ต้องการแชร์โปรเจคให้กันและกัน แต่บังเอิญว่าเพื่อนผม เค้าติดตั้ง OpenCV2.4 ไว้ที่ C:\Program Files (x86)\OpenCV2.4 แต่ผมติดตั้งไว้ที่  E:\software\opencv จะเกิดอะไรขึ้น หากผมนำโปรเจคของเพื่อนมารันที่เครื่องผม ถึงแม้เราจะใช้ Visual C++ เวอร์ชั่นเดียวกันก็ตาม ก็ต้องมานั่งแก้ค่าคอนฟิคต่างๆ ก่อนจะ build solution อย่างแน่นอน แต่ถ้าใช้วิธีนี้ เราสามารถนำโปรเจคคนอื่นมา build solution ใหม่ได้เลยทันที

อย่างที่สองก็คือ หากวันข้างหน้า  OpenCV ออกเวอร์ชั่นใหม่มา จากเดิมที่เราใช้อยู่ คือ OpenCV2.4 แล้วเปลี่ยนมาเป็นเวอร์ชั่น OpenCV2.5 หรือ OpenCV3.0 บางคนอาจจะเลือกที่จะแตกไฟล์ใหม่ทับของเก่า หรือไม่ก็ rename folder เอา แต่ ถ้าเรากำหนดค่าใน system variables ใน Environment variables ของ Windows แล้วหล่ะก็ เราก็แค่เปลี่ยนแปลงที่นี่ เท่านั้น จากเดิม

Variable name : OPENCV_DIR
Variable value : E:\software\opencv

ก็กำหนดใหม่เป็น

Variable name : OPENCV_DIR
Variable value : E:\software\OpenCV2.5\opencv

ที่เหลือในโปรเจค เราก็แค่ไปเปลี่ยน Linker>Input ให้ไปเรียกไฟล์ใหม่ อย่างน้อยเราก็ไม่ต้องตามไปแก้ไข config ใหม่ทั้งหมด  นี่ก็เป็นอีกเทคนิคหนึ่ง ที่ผมอยากจะนำเสนอครับ  ก็ลองเอาไปปรับๆ กันดูครับ หากใครมีเทคนิคใด น่าสนใจ ก็แชร์กันได้ครับ

0 ความคิดเห็น:

Post a Comment

 

แจกฟรี พื้นที่ฝากไฟล์ 2 GB

ads

ติดตามข่าวสารผ่าน Twitter

ติดตาม Blog นี้

Blog อื่นๆของฉัน

จำนวนการเยี่ยมชมบล๊อก