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

GCC คือ GNU Compiler Collection มันเป็นคอมไพเลอร์มาตรฐานอย่างแท้จริงสำหรับ C, C ++, Go, Fortran และ Ada บน Linux และรองรับภาษาและแพลตฟอร์มอื่น ๆ อีกมากมายเช่นกัน นอกเหนือจากคอมไพเลอร์ GCC ยังมี toolchain (libc, libstdc ++, objdump, nm ฯลฯ ) ที่ใช้กันอย่างแพร่หลายในหลายแพลตฟอร์มและระบบ

17
คุณจะรับเอาต์พุตแอสเซมเบลอร์จากแหล่ง C / C ++ เป็น gcc ได้อย่างไร
คนเราจะทำสิ่งนี้ได้อย่างไร หากฉันต้องการวิเคราะห์ว่ามีบางสิ่งที่รวบรวมได้ฉันจะได้รับรหัสแอสเซมบลีที่ปล่อยออกมาได้อย่างไร
379 c++  c  debugging  gcc  assembly 

30
การอ้างอิงที่ไม่ได้กำหนดไปยัง vtable
เมื่อสร้างโปรแกรม C ++ ฉันจะได้รับข้อความแสดงข้อผิดพลาด การอ้างอิงที่ไม่ได้กำหนดถึง 'vtable ... สาเหตุของปัญหานี้คืออะไร? ฉันจะแก้ไขได้อย่างไร มันเกิดขึ้นที่ฉันได้รับข้อผิดพลาดสำหรับโค้ดต่อไปนี้ (คลาสที่เป็นปัญหาคือ CGameModule) และฉันไม่สามารถใช้ชีวิตของฉันได้เข้าใจว่าปัญหาคืออะไร ตอนแรกฉันคิดว่ามันเกี่ยวข้องกับการลืมที่จะให้ร่างกายเสมือนการทำงาน แต่เท่าที่ฉันเข้าใจทุกอย่างอยู่ที่นี่ ห่วงโซ่การสืบทอดมีความยาวเล็กน้อย แต่นี่คือซอร์สโค้ดที่เกี่ยวข้อง ฉันไม่แน่ใจว่าข้อมูลอื่น ๆ ที่ฉันควรให้คืออะไร หมายเหตุ: คอนสตรัคเตอร์เป็นที่ที่ข้อผิดพลาดนี้เกิดขึ้นดูเหมือนว่าจะเกิดขึ้น รหัสของฉัน: class CGameModule : public CDasherModule { public: CGameModule(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, CDasherInterfaceBase *pInterface, ModuleID_t iID, const char *szName) : CDasherModule(pEventHandler, pSettingsStore, iID, 0, szName) { g_pLogger->Log("Inside game …
357 c++  gcc  g++ 

16
ข้อผิดพลาด gcc makefile:“ ไม่มีกฎที่จะทำให้เป้าหมาย…”
ฉันพยายามใช้ GCC (linux) กับ makefile เพื่อรวบรวมโครงการของฉัน ฉันได้รับข้อผิดพลาดต่อไปนี้ซึ่งดูเหมือนจะไม่สามารถถอดรหัสในบริบทนี้: "No rule to make target 'vertex.cpp', needed by 'vertex.o'. Stop." นี่คือ makefile: a.out: vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o g++ vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o main.o: main.cpp main.h g++ -c main.cpp vertex.o: vertex.cpp vertex.h g++ -c vertex.cpp edge.o: edge.cpp edge.h …
356 gcc  makefile 

10
มาโครที่น่าจะเป็น / ไม่น่าจะทำงานในเคอร์เนล Linux ได้อย่างไรและประโยชน์ของมันคืออะไร?
ฉันขุดผ่านบางส่วนของเคอร์เนล Linux และพบสายเช่นนี้: if (unlikely(fd < 0)) { /* Do something */ } หรือ if (likely(!err)) { /* Do something */ } ฉันได้พบคำจำกัดความของพวกเขา: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) ฉันรู้ว่ามีไว้สำหรับการปรับให้เหมาะสม แต่จะทำงานอย่างไร และสามารถลดขนาดประสิทธิภาพ / ขนาดได้เท่าไรจากการใช้งาน? และมันก็คุ้มค่ากับความยุ่งยาก (และการสูญเสียความสามารถในการพกพา) อย่างน้อยในโค้ดคอขวด (ใน userspace แน่นอน)

5
__attribute __ ((constructor)) ทำงานอย่างไร
ดูเหมือนจะค่อนข้างชัดเจนว่าควรตั้งค่าสิ่งต่าง ๆ มันจะทำงานเมื่อใด เหตุใดจึงมีสองวงเล็บ คือ__attribute__ฟังก์ชั่น? แมโครหรือไม่? ไวยากรณ์? ใช้งานได้ใน C หรือไม่ c ++? ฟังก์ชั่นนี้ใช้งานได้กับต้องเป็นแบบคงที่หรือไม่? __attribute__((destructor))ทำงานเมื่อไหร่ ตัวอย่างใน Objective-C : __attribute__((constructor)) static void initialize_navigationBarImages() { navigationBarImages = [[NSMutableDictionary alloc] init]; } __attribute__((destructor)) static void destroy_navigationBarImages() { [navigationBarImages release]; }
348 c++  objective-c  c  gcc 

30
สคริปต์การตั้งค่าออกจากพร้อมข้อผิดพลาด: คำสั่ง 'x86_64-linux-gnu-gcc' ล้มเหลวด้วยสถานะออก 1
เมื่อฉันพยายามติดตั้งodoo-serverฉันได้รับข้อผิดพลาดต่อไปนี้: error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ใครช่วยฉันแก้ปัญหานี้ได้บ้าง
334 python  gcc  pip  odoo-server 

4
ฟังก์ชัน C นี้ควรส่งคืนค่าเท็จเสมอ แต่ไม่เป็นเช่นนั้น
ฉันพบคำถามที่น่าสนใจในฟอรัมมานานแล้วและต้องการทราบคำตอบ พิจารณาฟังก์ชัน C ต่อไปนี้: f1.c #include <stdbool.h> bool f1() { int var1 = 1000; int var2 = 2000; int var3 = var1 + var2; return (var3 == 0) ? true : false; } นี้ควรกลับมาตั้งแต่false ฟังก์ชั่นมีลักษณะเช่นนี้var3 == 3000main main.c #include <stdio.h> #include <stdbool.h> int main() { printf( f1() == true ? …
317 c  gcc 

9
วิธีใช้ / ติดตั้ง gcc บน Mac OS X 10.8 / Xcode 4.4
ฉันได้ติดตั้ง Mountain Lion (Mac OS X 10.8) และตอนนี้ gcc ดูเหมือนจะไม่สามารถใช้ได้อีกต่อไป ฉันได้ติดตั้ง Xcode 4.4 แล้วดังนั้นจึงไม่มีไดเรกทอรีเพิ่มเติม / นักพัฒนา ฉันต้องการ gcc ทั้งสำหรับพอร์ต Mac และสำหรับพลอยทับทิม (ที่มีส่วนขยายเนทิฟ) Xcode 4.4 มี gcc หรือมีวิธีการติดตั้ง gcc หรือไม่?
294 xcode  macos  gcc 

4
วิธีเพิ่มพา ธ รวมเริ่มต้นสำหรับ GCC ใน Linux
ฉันต้องการ GCC จะรวมไฟล์จาก$HOME/includeที่นอกเหนือไปจากปกติรวมถึงไดเรกทอรี $LD_LIBRARY_PATHแต่มีไม่ดูเหมือนจะเป็นแบบอนาลอก ฉันรู้ว่าฉันสามารถเพิ่มไดเรกทอรีรวมที่บรรทัดคำสั่งเมื่อรวบรวม (หรือใน makefile) แต่ฉันชอบวิธีการที่เป็นสากลที่นี่เช่นในกรณีห้องสมุด

7
ฉันจะบังคับให้ / GCC แสดงคำสั่งได้อย่างไร
ฉันกำลังพยายามแก้ไขข้อผิดพลาดในการรวบรวม แต่ดูเหมือนว่าฉันจะไม่ได้รับ GCC (หรืออาจจะเป็นเรื่องที่ทำให้ ??) แสดงคำสั่งคอมไพเลอร์และตัวเชื่อมโยงที่ใช้งานจริงให้ฉันดู นี่คือผลลัพธ์ที่ฉันเห็น: CCLD libvirt_parthelper libvirt_parthelper-parthelper.o: In function `main': /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:102: undefined reference to `ped_device_get' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:116: undefined reference to `ped_disk_new' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:122: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' /root/qemu-build/libvirt-0.9.0/src/storage/parthelper.c:172: undefined reference to `ped_disk_next_partition' collect2: ld returned 1 exit status make[3]: *** [libvirt_parthelper] Error 1 สิ่งที่ฉันต้องการเห็นควรคล้ายกับสิ่งนี้: …
277 gcc  makefile  verbosity 

16
ไม่สามารถติดตั้ง Ruby ภายใต้ Lion ที่มีปัญหา RVM - GCC
คำถามส่วนใหญ่เกี่ยวกับปัญหานี้เกิดจาก Xcode หายไป; ฉันติดตั้ง Xcode 4.2 แล้ว ติดตั้งความพยายาม: rvm install 1.9.3 Installing Ruby from source to: /Users/jamie/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)... ruby-1.9.3-p0 - #fetching ruby-1.9.3-p0 - #extracted to /Users/jamie/.rvm/src/ruby-1.9.3-p0 (already extracted) Fetching yaml-0.1.4.tar.gz to /Users/jamie/.rvm/archives Extracting yaml-0.1.4.tar.gz to /Users/jamie/.rvm/src Configuring yaml in /Users/jamie/.rvm/src/yaml-0.1.4. Compiling yaml …
268 ruby  gcc  rvm  osx-lion  xcode4.2 


10
ใช้ GCC เพื่อสร้างชุดประกอบที่อ่านได้หรือไม่
ฉันสงสัยว่าจะใช้GCCในไฟล์ต้นฉบับ C ของฉันเพื่อถ่ายโอนรหัสเครื่องช่วยจำรุ่นใดเพื่อที่ฉันจะได้เห็นว่าโค้ดของฉันรวบรวมอะไร คุณสามารถทำได้ด้วย Java แต่ฉันไม่สามารถหาวิธีที่มี GCC ฉันกำลังพยายามเขียนวิธี C อีกครั้งในการชุมนุมและดูว่า GCC ทำมันได้อย่างไรจะช่วยได้มาก
256 c  gcc  assembly 

3
คำสั่งเริ่มต้นรายการประเมินผลตัวสร้าง
ฉันมีตัวสร้างที่ใช้อาร์กิวเมนต์บางอย่าง ฉันสันนิษฐานว่าพวกเขาถูกสร้างขึ้นตามลำดับที่ระบุไว้ แต่ในกรณีหนึ่งดูเหมือนว่าพวกเขากำลังสร้างในสิ่งที่ตรงกันข้ามทำให้เกิดการยกเลิก เมื่อฉันย้อนกลับข้อโต้แย้งโปรแกรมหยุดยกเลิก นี่คือตัวอย่างของไวยากรณ์ที่ฉันใช้ สิ่งนี้คือ a_ ต้องเริ่มต้นก่อน b_ ในกรณีนี้ คุณสามารถรับประกันลำดับของการก่อสร้างได้หรือไม่? เช่น class A { public: A(OtherClass o, string x, int y) : a_(o), b_(a_, x, y) { } OtherClass a_; AnotherClass b_; };
252 c++  gcc  c++-faq 

6
ตัวประมวลผลก่อนดัมพ์ GCC กำหนด
Наэтотвопросестьответына กองมากเกินнарусском : Какузнатьсписоквсехопределённыхмакросов? มีวิธีสำหรับ gcc / g ++ เพื่อถ่ายโอนข้อมูลตัวประมวลผลล่วงหน้าที่กำหนดจากบรรทัดคำสั่งหรือไม่? ผมหมายถึงสิ่งที่ชอบ__GNUC__, __STDC__และอื่น ๆ
248 gcc  g++  c-preprocessor 

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