ฉันมีปัญหาหลายอย่างเช่นกัน (Ubuntu 13.04 64-bit, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0) หลายสิ่งหลายอย่างถูกกล่าวถึงข้างต้นขออภัยที่จะทำซ้ำ แต่นอกจากนี้ฉันมีปัญหาในการใช้
std::thread
เป็นส่วนหนึ่งของ c ++ 11 (การเพิ่ม -pthread สำหรับ linker แก้ปัญหานั้น) อย่างไรก็ตามในที่สุดการตั้งค่าเหล่านี้ก็ใช้งานได้ดี:
โครงการ -> คุณสมบัติ -> สร้าง C / C ++ -> การตั้งค่า -> เบ็ดเตล็ด เพิ่ม
-std=c++11
ตั้งค่าสถานะสำหรับคอมไพเลอร์ GCC และ G ++ คลิกนำไปใช้
สำหรับตัวลิงก์หน้าต่างเดียวกันค่าสถานะเบ็ดเตล็ดตัวเชื่อมโยงเพิ่ม
-pthread
ธง. การตั้งค่าไลบรารีที่ใช้ร่วมกันชื่อวัตถุที่แชร์เพิ่ม
-Wl,--no-as-needed
ติดธงเกินไป คลิกนำไปใช้
C / C ++ ทั่วไป -> เส้นทางและสัญลักษณ์ -> เลือก TAB, GNU C ++, เพิ่ม
__GXX_EXPERIMENTAL_CXX0X__
(ไม่มีค่า)
ธง. คลิกนำไปใช้
ทั่วไป C / C ++ -> ตัวประมวลผลล่วงหน้ารวมเส้นทาง .. -> แท็บผู้ให้บริการ: ตรวจสอบ
CDT GCC ในตัวการตั้งค่าคอมไพเลอร์
และสำหรับ "คำสั่งเพื่อรับข้อมูลจำเพาะคอมไพเลอร์" ให้เพิ่ม
-std=c++11
ธง. ยกเลิกการเลือกแบ่งปัน คลิกนำไปใช้
จัดการการตั้งค่ารายการสร้าง CDT ตรวจสอบด้วย ยกเลิกการเลือกอีกสองคน คลิกนำไปใช้
กลับไปที่แท็บรายการ GNU C ++ CDT จัดการรายการสร้างการตั้งค่าตอนนี้คุณควรเห็นของคุณเพิ่ม
__GXX_EXPERIMENTAL_CXX0X__
การเข้า
แค่นั้นแหละ. เมื่อการเข้ารหัสให้พิมพ์
std::
ตอนนี้สามารถทำให้คลาสของเธรดสมบูรณ์โดยอัตโนมัติตัวอย่างเช่น build ควรทำงานได้ดีและไม่ควรมี
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
ที่รันไทม์
std::unique_ptr<char[]>