จะรวบรวมโปรแกรม ac ที่ใช้ pthread.h ได้อย่างไร


14

ฉันเป็นผู้เริ่มต้นและฉันใหม่กับ Ubuntu ฉันเพิ่งติดตั้งและต้องการเรียกใช้โปรแกรม C ฉันไม่รู้ว่าจะใช้แพลตฟอร์มใดหรือเขียนรหัสที่ไหน ฉันต้องใช้ไฟล์ส่วนหัว pthread.h ในโปรแกรม มีใครช่วยฉันบ้าง


เป็นไปได้ที่ซ้ำกันของวิธีการคอมไพล์โปรแกรม c & c ++?
Elder Geek

คำตอบ:


21

ใช้:

gcc MyProgram.c -o MyProgram -lpthread 

และอย่าลืมที่จะรวมไลบรารี POSIX ในรหัสของคุณ มันจะรวบรวมรหัสของคุณ


2
โดยค่าเริ่มต้น GCC จะไม่รวมไลบรารี pthread ดังนั้นคุณต้องรวมไลบรารีโดยใช้อาร์กิวเมนต์ lpthread
Parthiv Shah

โปรดทราบด้วยว่าใน gcc-4.8 ไม่มี-lpthreadข้อโต้แย้งman gccใด ๆ แต่มี-pthreadข้อโต้แย้ง ทั้งสองทำงานได้ดีบน Ubuntu 14.04 ด้วย gcc-4.8
Elijah Lynn

1

หากคุณจะรวบรวมโปรแกรม C ด้วยpthread.hใน LINUX โดยใช้ GCC หรือ G ++ คุณจะต้องใช้ตัวเลือก–lpthreadหลังจากคำสั่งรวบรวม

gcc xyz.c -o xyz -lpthread

ที่นี่

gccเป็นคำสั่งคอมไพเลอร์ (ชื่อคอมไพเลอร์)
xyz.cเป็นชื่อไฟล์ต้นฉบับ
-oเป็นตัวเลือกในการสร้างไฟล์ objcect
xyzเป็นชื่อของไฟล์ object (binary)
-lpthreadเป็นตัวเลือกสำหรับ pthread.h

สำหรับรายละเอียดเพิ่มเติมที่นี่เป็นลิงค์เชื่อมโยงบทความที่สมบูรณ์เกี่ยวกับเรื่องนี้
รวบรวมโปรแกรม C ด้วย pthread.h ใน Linux


0

สิ่งแรกที่คุณจะต้องใช้ใน Ubuntu เพื่อรวบรวมโปรแกรม C / C ++ คือการติดตั้ง GCC (Gnu Compiler Collection) ซึ่งเป็นส่วนหนึ่งของbuild-essentialแพ็คเกจโดยทำดังนี้:

sudo apt-get install build-essential

gccจากนั้นคุณสามารถทดสอบว่าคุณมีมันติดตั้งโดยการเรียกใช้ หากคุณเห็นข้อผิดพลาดเช่นFatal error: file not provided(ไม่แน่ใจว่าข้อความข้อผิดพลาดที่แน่นอน แต่ควรเป็นสิ่งที่คล้ายกัน) นั่นหมายความว่าคุณมีคอมไพเลอร์พร้อม

และสำหรับการแก้ไขรหัสของคุณคุณสามารถใช้Gedit ที่มีอยู่แล้วค้นหาเฉพาะใน Dash

ตอนนี้ต่อไปนี้เป็นไวยากรณ์ในการรวบรวมไฟล์ต้นฉบับ C ของคุณเรียกใช้ต่อไปนี้ที่ไฟล์ของคุณคือ:

gcc MyProgram.c -o MyProgram

โดยที่สวิตช์-oเป็นทางเลือก แต่มีการกล่าวถึงชื่อของไฟล์ไบนารีซึ่งควรสร้างจากแหล่งที่มาของคุณ

จากนั้นเรียกใช้./MyProgramเพื่อเรียกใช้ไบนารีของคุณ

โปรดทราบว่าpthread.hตามค่าเริ่มต้นที่คุณกล่าวไว้ (POSIX Thread) โดย GCC ดังนั้นเพียงรวมไว้ในไฟล์ C ของคุณจะทำงานดังกล่าวในกรณีที่ไม่สามารถใช้งานได้การค้นหาโดย Google แบบง่ายจะช่วยได้ ;)

ปรับปรุง

นานเกินไปไม่อ่านหรอ ตรวจสอบนี้ : D


0

หากมีข้อผิดพลาดมากกว่าที่คุณสามารถลองใช้คำสั่งเดียวกันโดยการเปลี่ยนพารามิเตอร์ตามที่ต้องการ

gcc -lpthread -o output_file program_pthread.c

หลังจากนั้น./output_fileให้เอาต์พุตสำหรับโปรแกรมและนี่program_pthread.cคือโปรแกรม pthread ที่คุณใช้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.