คอมไพล์ gcc4.4.6 บนเครื่องหนึ่งแล้วจะให้เครื่องอื่นใช้งานได้อย่างไร?

ฉันสร้าง gcc 4.4.6 (เพื่อใช้ CUDA) บนเซิร์ฟเวอร์ที่รวดเร็ว ใช้เวลาประมาณ 10 นาที อย่างไรก็ตาม บนเดสก์ท็อปของฉันเอง การคอมไพล์ใช้เวลานานพอสมควร

ดังนั้นทั้งสองเครื่องจึงเป็น Linux 64 บิต แม้ว่า 1 เครื่องจะเป็น Ubuntu ในขณะที่อีกเครื่องเป็น Arch Linux Arch Linux มีเคอร์เนลเวอร์ชันใหม่

ดังนั้นบนเซิร์ฟเวอร์ ฉันจึงติดตั้ง gcc-4.4.6 ที่สร้างขึ้นเป็น /opt และฉันเพิ่งคัดลอก /opt/gcc-4.4.6 ไปยังพีซีของฉัน /opt/gcc-4.4.6

em ดูเหมือนว่ามันจะใช้งานไม่ได้เมื่อฉันลอง ./x86_64-unknown-linux-gnu-gcc ~/Development/c/hello/hello.c

มันแสดง x86_64-unknown-linux-gnu-gcc: ข้อผิดพลาดในการพยายาม exec 'cc1': execvp: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

แล้วตอนนี้ฉันจะทำอย่างไร?

ขอบคุณอัลเฟรด


person Alfred Zhong    schedule 21.08.2011    source แหล่งที่มา
comment
แน่นอนว่านี่เป็นเพียงปัญหาเส้นทางใช่ไหม   -  person talonmies    schedule 21.08.2011
comment
สิ่งที่น่าทึ่งคือที่ cc1 นี้อยู่ที่ไหนและวิธีเชื่อมโยง paticular cc1 กับไฟล์ปฏิบัติการ gcc เฉพาะ ฉันใช้ find และ cc1 ไม่ได้อยู่ใน /opt ซึ่งฉันติดตั้ง gcc 4.4.6 ในตัว   -  person Alfred Zhong    schedule 21.08.2011


คำตอบ (1)


หากระบบคล้ายกันเพียงพอ คุณสามารถคอมไพล์ GCC บนเครื่องขนาดใหญ่ได้ (อย่าลืมว่า GCC จำเป็นต้องได้รับการกำหนดค่าและสร้างในไดเร็กทอรี ภายนอก ของแผนผังต้นทาง) จากนั้นให้รัน make -j3 all จากนั้น make install DESTDIR=/tmp/gccinst/ และคัดลอกไดเร็กทอรี /tmp/gccinst นั้นไปยังเครื่องขนาดเล็กของคุณ และสุดท้ายก็คัดลอกลงในระบบไฟล์รูท (บนเครื่องขนาดเล็ก)

อย่างไรก็ตาม GCC 4.4.6 ค่อนข้างเก่าในปัจจุบัน หากคุณกำลังคอมไพล์ GCC ให้ลองคอมไพล์ GCC 4.6.2 (หรืออย่างน้อย 4.6.1)

และ (ปลั๊กไร้ยางอายสำหรับงานของฉัน) หากคุณคอมไพล์ GCC 4.6 โปรดเปิดใช้งานปลั๊กอินบนนั้น จากนั้นคุณอาจลองใช้ GCC MELT ปลั๊กอิน [meta-] (MELT เป็นภาษาเฉพาะโดเมนระดับสูงเพื่อความสะดวกในการพัฒนาส่วนขยาย GCC)

person Basile Starynkevitch    schedule 25.10.2011