คำถามติดแท็ก compiling

การคอมไพล์เป็นกระบวนการของการแปลงซอร์สโค้ดเป็นโค้ดไบต์สำหรับสถาปัตยกรรมคอมพิวเตอร์เฉพาะ

7
บังคับให้ไดเรกทอรีอยู่ในแคชเสมอ
ฉันได้ทดสอบวิธีการต่าง ๆ เพื่อปรับปรุงเวลาที่ใช้ในการรวบรวมโครงการ c ++ ทั้งหมดของฉัน ขณะนี้ใช้เวลาประมาณ 5 นาที ฉันทดลองกับ distcc, ccache และอื่น ๆ เมื่อเร็ว ๆ นี้ฉันค้นพบว่าถ้าฉันคัดลอกโครงการทั้งหมดของฉันลงใน RAM- ไดรฟ์แล้วรวบรวมจากที่นั่นจะลดเวลาในการคอมไพล์ลงเหลือ 30% จากเดิม - เพียง 1.5 นาที เห็นได้ชัดว่าการทำงานจากไดรฟ์แรมนั้นใช้ไม่ได้จริง ดังนั้นไม่มีใครรู้วิธีที่ฉันสามารถบังคับให้ระบบปฏิบัติการที่จะเก็บไดเรกทอรีบางแคชเสมอ ? ฉันยังต้องการให้ไดเรกทอรีซิงค์กลับไปที่ดิสก์เหมือนปกติ แต่ฉันต้องการคัดลอกข้อมูลในหน่วยความจำด้วยเช่นกัน เป็นไปได้ไหม แก้ไข: ในฐานะที่เป็นทางออกที่เป็นไปได้เราแค่คิดว่าจะเปิดตัวภูตที่วิ่งrsyncทุก ๆ 10 วินาทีหรือมากกว่านั้นเพื่อซิงค์ดิสก์ไดรฟ์กับไดรฟ์ RAM จากนั้นเราก็เรียกใช้การรวบรวมจากไดรฟ์แรม rsyncเป็นอย่างเห็นได้ชัด แต่จะทำงานจริงๆ? แน่นอนว่าระบบปฏิบัติการนั้นสามารถทำได้ดีกว่า ....

5
การติดตามโปรแกรม
เมื่อฉันติดตั้งโปรแกรมอย่างง่ายมันมักจะใช้make && make installและไม่ได้มีเป้าหมายในการถอนการติดตั้ง หากฉันต้องการอัพเกรดโปรแกรมเป็นโปรโตคอลมาตรฐานหรือไม่ที่จะสมมติว่ามันเขียนทับโปรแกรมเก่าได้อย่างราบรื่นหรือไม่? ฉันจะติดตามโปรแกรมเหล่านี้ได้อย่างไร ทำคนส่วนใหญ่เพียง 'ไฟและลืม' และหากไม่มีการกำหนดเป้าหมายการถอนการติดตั้งฉันต้องลบทุกอย่างด้วยตนเองหรือไม่

2
เหตุใดจึงไม่มีแพ็คเกจแพ็คเกจใน Arch Linux
ฉันเข้าใจว่าการแจกแจงตามแหล่งที่มาเช่นGentooหรือSlackwareไม่จำเป็นต้องมี*-devรุ่นของโปรแกรม ซึ่งรวมถึงซอร์สโค้ดรวมถึงไฟล์ส่วนหัวเพื่อรวบรวมทุกอย่างในเครื่อง แต่ฉันไม่เคยเห็น*-devแพ็คเกจในArch Linuxแม้ว่าจะเป็นแพ็คเกจก็ตาม ฉันวิ่งข้าม*-devแพคเกจจำนวนมากในการกระจายอื่น ๆ

3
การย้าย Linux ไปยังข้อกำหนดแพลตฟอร์มอื่น [ปิด]
ฉันรู้ว่า Linux สามารถใช้งานได้และได้รับการจัดพอร์ตสำหรับแพลตฟอร์มที่แตกต่างกันเช่น X86, ARM, PowerPC เป็นต้น อย่างไรก็ตามในแง่ของการพอร์ตสิ่งที่จำเป็นต้องมี? ความเข้าใจของฉันคือว่า Linux เป็นซอฟต์แวร์ที่เขียนใน C. ดังนั้นเมื่อพอร์ต Linux เดิมจาก X86 ถึง ARM หรืออื่น ๆ มันไม่ได้เป็นเพียงเรื่องของการรวบรวมรหัสกับคอมไพเลอร์สำหรับสถาปัตยกรรมเป้าหมายที่เฉพาะเจาะจงอีกครั้ง? วางไดรเวอร์อุปกรณ์สำหรับอุปกรณ์ต่อพ่วงที่แตกต่างกันสิ่งอื่น ๆ ที่จะต้องทำเมื่อย้ายพอร์ต Linux ไปยังสถาปัตยกรรมใหม่ คอมไพเลอร์ไม่ได้ดูแลทุกอย่างสำหรับเราหรือไม่?

3
ไฟล์. in คืออะไร
บางครั้งในแหล่งที่มาของโครงการฉันเห็นไฟล์ "* .in" ตัวอย่างเช่นพวงของ "Makefile.in" พวกเขามีไว้เพื่ออะไรและ / หรือส่วน ".in" หมายถึงอะไร? ฉันคิดว่านี้มีสิ่งที่จะทำอย่างไรกับautoconfหรือmakeหรือสิ่งที่ต้องการเหล่านั้น แต่ผมไม่แน่ใจว่า ฉันได้ลองค้นหา ".in file extension", "autoconf .in file extension", "autoconf .in", "autoconf dot in" และตัวแปรอื่น ๆ โดยไม่มีโชค

2
เป็นไปได้ไหมที่จะรวบรวมระบบลีนุกซ์เต็มรูปแบบกับคอมไพเลอร์ของ Intel แทนที่จะเป็น GCC?
อาจมีปัญหาความเข้ากันได้บ้าง? ฉันมีความประทับใจว่าสำหรับระบบที่ใช้ Intel ตัวแปลภาษาของ Intel อาจทำงานได้ดีกว่า GCC บางทีอาจมี distro ที่พยายามทำสิ่งนี้อยู่แล้ว? ฉันคิดว่ามันอาจจะตรงไปตรงมาเมื่อใช้ Gentoo
26 compiling  x86 

2
Wayland คืออะไร
ฉันกำลังมองหาเซิร์ฟเวอร์ X ที่มีน้ำหนักเบา แต่ไม่สามารถหาได้ จากนั้นฉันก็ค้นพบเกี่ยวกับ Wayland ฉันบอกว่ามันมีจุดมุ่งหมายเพื่ออยู่ร่วมกับ X แต่สามารถเรียกใช้แบบสแตนด์อโลน เมื่อฉันพยายามรวบรวมมันต้องใช้ Mesa ซึ่งต้องการ X ว่าอะไรคือ Wayland?
25 xorg  x11  compiling  wayland 

3
ไม่สามารถเรียกใช้คำสั่ง configure:“ ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”
ฉันกำลังพยายามติดตั้งแพ็คเกจ Debian จากแหล่ง (ผ่าน git) ฉันดาวน์โหลดแพคเกจที่มีการเปลี่ยนแปลงไปยังไดเรกทอรีของแพคเกจและวิ่ง./configureคำสั่ง bash: ./configure: No such file or directoryแต่มันกลับมา มีปัญหาอะไรบ้าง? configure.acไฟล์จะอยู่ในโฟลเดอร์โปรแกรม ./configure make sudo make install

4
ตัวเลือกการสร้างเคอร์เนลปัจจุบันเก็บอยู่ที่ไหน
มีวิธีทราบหรือไม่ว่าเคอร์เนลถูกคอมไพล์ด้วยตัวเลือกบางตัวที่เปิดใช้งาน (เช่นCONFIG_PROC_EVENTS=y) โดยไม่ต้องดึงแพ็กเกจซอร์สเคอร์เนลออกและค้นหาในไฟล์ปรับแต่งหรือไม่?

5
automake และ autoconf เป็นวิธีมาตรฐานในการรวบรวมรหัสหรือไม่
บางครั้งฉันรวบรวมแอพจากแหล่งที่มาและฉันก็ใช้: ./configure make sudo make install แต่เมื่อเร็ว ๆ นี้ฉันได้พบกับ./autogen.shสิ่งที่สร้างการกำหนดค่าและสร้างสคริปต์ให้ฉันและรันพวกเขา มีวิธีอื่นใดในการเพิ่มประสิทธิภาพการรวบรวม C / C ++ / C # (โมโน) ทำให้ดูเหมือนว่าจะเก่าไปหน่อย มีเครื่องมือใหม่ ๆ บ้างไหม? ได้รับตัวเลือกฉันควรใช้อันไหน

14
Distros ที่รองรับการคอมไพล์จากแหล่งที่มา
นานมาแล้วฉันเคยใช้ FreeBSD กับระบบพอร์ตและหลังจากนั้น Gentoo สำหรับการขนส่งเพื่อติดตั้งแอปพลิเคชันผ่านการรวบรวมจากแหล่งที่มา ฉันทำสิ่งนี้เพื่อกำหนดเป้าหมายระบบของฉันโดยตรง มี distros อื่น ๆ ที่สนับสนุนการกำหนดค่าดังกล่าวหรือไม่ ฉันดูเหมือนจะจำ Slackware ที่มีบางสิ่งที่คล้ายกัน

9
รวบรวมรหัสจากเป็นกลุ่ม
ใหม่vimและฉันต้องการรวบรวมโค้ดจากภายในvimโดยไม่ต้องเรียกใช้เทอร์มินัลใหม่และเรียกคอมไพเลอร์ ฉันจะทำสิ่งนี้ได้อย่างไร โปรดทราบว่าข้อกำหนดนี้ไม่ได้ จำกัดgccเฉพาะบางครั้งฉันต้องโทรหาpythonสคริปต์ปัจจุบันที่ฉันใช้งานด้วยเพื่อที่คุณจะได้รับแนวคิด ...
18 vim  compiling  ide 

6
การคอมไพล์ GNU / Linux ด้วยการเพิ่มประสิทธิภาพ -O3
ได้มีการกล่าวว่าการรวบรวมเครื่องมือ GNU และเคอร์เนล Linux พร้อม-O3ตัวเลือกการเพิ่มประสิทธิภาพ gcc จะสร้างข้อผิดพลาดที่แปลกและแปลกใหม่ จริงป้ะ? มีใครลองดูบ้างหรือว่ามันเป็นเรื่องหลอกลวง?

1
ความพยายามในการรวบรวมเคอร์เนลทำให้เกิดข้อผิดพลาดในการออกใบรับรอง
ขณะนี้ฉันกำลังพยายามติดตามHardening Debian สำหรับเดสก์ท็อปโดยใช้คู่มือGrsecurityเพื่อติดตั้งเคอร์เนล 4.5.7 พร้อม Grsecurity บนเดสก์ท็อป Kali Linux ของฉัน ฉันกำลังติดตามรายการคำแนะนำทุกคำยกเว้นว่าฉันพยายามใช้แพทช์ทดสอบของ Grsecurity สำหรับเคอร์เนล 4.5.7 และฉันใช้ Kali Linux แทนที่จะเป็น Debian แบบตรง ทุกครั้งที่ฉันพยายามรวบรวมเคอร์เนล แต่ฉันพบข้อผิดพลาดนี้ตามบรรทัด "CC certs / system_keyring.o": CC certs/system_keyring.o make[2]: *** No rule to make target 'debian/certs/benh@debian.org.cert.pem', needed by 'certs/x509_certificate_list'. Stop. Makefile:951: recipe for target 'certs' failed make[1]: *** [certs] Error …

2
วิธีรวมไฟล์ส่วนหัวในเครื่องในโมดูลเคอร์เนลของ linux
ว่าฉันมีโมดูลที่mymodมีไฟล์ต้นฉบับดังนี้ src / mod / mymod.c src / inc / mymod.h ฉันพยายามที่จะรวม mymod.h ดังต่อไปนี้ #include <mymod.h> makefile ของฉันมีEXTRA_CFLAGS= -I$(shell pwd)/../inc/แต่เมื่อเคอร์เนลทำฉันได้รับข้อผิดพลาดที่ระบุ: ไม่พบ mymod.h เหตุผลน่าจะเป็นที่เมื่อโมดูลเคอร์เนลทำคำสั่งนี้ได้รับการเรียกใช้จาก makefile: (ใช้makeV1): make -C <path/to/linux/src> M=<path/to/mymod> modules ในผลงานอื่น ๆ ของฉัน$(shell pwd)Got <path/to/linux>ขยายไป นี่ไม่ใช่สิ่งที่ฉันต้องการ ฉันจะระบุ-Iพารามิเตอร์ให้ชี้ไปที่แผนภูมิต้นไม้src/incของฉันได้mymodอย่างไร
17 linux  kernel  compiling  make 

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