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

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

2
GCC -g vs -g3 ค่าสถานะ GDB: ความแตกต่างคืออะไร?
เมื่อคอมไพล์ซอร์สโค้ด C ด้วย gcc หรือ Clang ฉันจะใช้-gแฟล็กเพื่อสร้างข้อมูลการดีบักสำหรับ gdb เสมอ gcc -g -o helloworld helloworld.c ฉันสังเกตเห็นว่ามีบางคนแนะนำ-g3แทน ความแตกต่างระหว่างแฟล็ก-gและ-g3แฟล็กคืออะไร? นอกจากนี้ยังมีความแตกต่างระหว่าง-gและ-ggdb?
108 c  debugging  gcc  gdb  clang 

3
ความแตกต่างระหว่าง CC, gcc และ g ++?
อะไรคือความแตกต่างระหว่าง 3 คอมไพเลอร์ CC, gcc, g ++ เมื่อคอมไพล์โค้ด C และ C ++ ในแง่ของการสร้างโค้ดแอสเซมบลีไลบรารีที่พร้อมใช้งานคุณสมบัติภาษา ฯลฯ
106 c++  c  gcc  compilation 

19
ข้อผิดพลาด CMake ที่ CMakeLists.txt: 30 (โครงการ): ไม่พบ CMAKE_C_COMPILER
ฉันกำลังพยายามสร้างโซลูชัน Visual Studio ด้วย CMake เพื่อรวบรวม aseprite เวอร์ชันล่าสุดและ CMake ให้ฉัน: No CMAKE_C_COMPILER could be found. No CMAKE_CXX_COMPILER could be found. ผมได้ดาวน์โหลดแล้ว GCC และฉันใช้Visual Studio 2015 ฉันกำลังติดตามบทช่วยสอนนี้: https://github.com/aseprite/aseprite/blob/master/INSTALL.md

14
การใช้ส่วนหัวที่คอมไพล์ล่วงหน้าด้วย CMake
ฉันเคยเห็นโพสต์ (เก่า ๆ ) สองสามโพสต์ใน 'net เกี่ยวกับการแฮ็กด้วยกันการสนับสนุนบางส่วนสำหรับส่วนหัวที่รวบรวมไว้ล่วงหน้าใน CMake พวกเขาทั้งหมดดูเหมือนจะทั่วสถานที่และทุกคนมีวิธีการของตัวเอง วิธีที่ดีที่สุดในการทำปัจจุบันคืออะไร?

21
CUDA เข้ากันไม่ได้กับเวอร์ชัน gcc ของฉัน
ฉันมีปัญหาในการรวบรวมตัวอย่างบางส่วนที่มาพร้อมกับ CUDA SDK ฉันได้ติดตั้งไดรเวอร์นักพัฒนาแล้ว (เวอร์ชัน 270.41.19) และชุดเครื่องมือ CUDA จากนั้นก็เป็น SDK (ทั้งเวอร์ชัน 4.0.17) เริ่มแรกมันไม่ได้รวบรวมเลยให้: error -- unsupported GNU version! gcc 4.5 and up are not supported! ฉันพบบรรทัดที่รับผิดชอบใน 81: /usr/local/cuda/include/host_config.h และเปลี่ยนเป็น: //#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4) #if __GNUC__ > 4 || (__GNUC__ == 4 && …
105 gcc  cuda  debian 

20
ข้อผิดพลาด Gcc: gcc: เกิดข้อผิดพลาดขณะพยายาม exec 'cc1': execvp: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
ฉันใช้ gcc บน Linux Mint 12 สำเร็จแล้วตอนนี้ฉันได้รับข้อผิดพลาด เมื่อไม่นานมานี้ฉันได้ทำการสร้างและติดตั้ง Clang เมื่อไม่นานมานี้ แต่ได้รวบรวมสำเร็จแล้วเนื่องจากทั้งสองเหตุการณ์นั้นจึงไม่แน่ใจว่ามีอะไรเปลี่ยนแปลงไปบ้าง ฉันใช้ GUI Software Manager เพื่อลบและติดตั้ง gcc อีกครั้ง แต่ผลลัพธ์เหมือนกัน: ~/code/c/ut: which gcc /usr/bin/gcc ~/code/c/ut: gcc -std=c99 -Wall -Wextra -g -c object.c gcc: error trying to exec 'cc1': execvp: No such file or directory
104 gcc 

4
-D_XOPEN_SOURCE ทำ / หมายถึงอะไร
ฉันเพิ่งพบโค้ดบางอย่างที่ gcc ไม่สามารถคอมไพล์ได้หากไม่มีอาร์กิวเมนต์นี้ ฉันตรวจสอบหน้าคน gcc แล้ว แต่ไม่พบตัวเลือกเฉพาะนี้ ฉันพบXOPEN_SOURCEแต่ไม่มีคำอธิบายเล็กน้อยเกี่ยวกับสิ่งที่ทำ ใครช่วยอธิบายให้ละเอียดหน่อยได้ไหม ฉันรู้ว่า-D_XOPEN_SOURCEสามารถตั้งค่าที่แตกต่างกันเช่น400, 600แต่สิ่งที่ทำเหล่านั้นหรือไม่
104 c  gcc 

6
__gxx_personality_v0 คืออะไร?
นี่เป็นคำถามมือสองจากไซต์การพัฒนาระบบปฏิบัติการ แต่มันทำให้ฉันสงสัยเพราะฉันไม่สามารถหาคำอธิบายที่ดีได้จากที่ใด เมื่อรวบรวมและเชื่อมโยงโปรแกรม C ++ แบบอิสระโดยใช้ gcc บางครั้งข้อผิดพลาดของตัวเชื่อมโยงเช่นนี้จะเกิดขึ้น: out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' เห็นได้ชัดว่าเป็นเพราะสัญลักษณ์นี้ถูกกำหนดใน libstdc ++ ซึ่งขาดหายไปในสภาพแวดล้อมอิสระ การแก้ไขปัญหาเพียงแค่กำหนดสัญลักษณ์นี้ไว้ที่ใดที่หนึ่ง: void *__gxx_personality_v0; ซึ่งดี แต่ฉันไม่ชอบสิ่งที่ใช้งานได้อย่างมหัศจรรย์ ... คำถามคือจุดประสงค์ของสัญลักษณ์นี้คืออะไร?
103 c++  gcc  linker  kernel 

3
Downcasting shared_ptr <Base> เป็น shared_ptr <Derived>?
อัปเดต: shared_ptr ในตัวอย่างนี้เหมือนใน Boost แต่ไม่รองรับ shared_polymorphic_downcast (หรือ dynamic_pointer_cast หรือ static_pointer_cast สำหรับเรื่องนั้น)! ฉันพยายามเริ่มต้นตัวชี้ที่ใช้ร่วมกันไปยังคลาสที่ได้รับโดยไม่สูญเสียจำนวนอ้างอิง struct Base { }; struct Derived : public Base { }; shared_ptr&lt;Base&gt; base(new Base()); shared_ptr&lt;Derived&gt; derived; // error: invalid conversion from 'Base* const' to 'Derived*' derived = base; จนถึงตอนนี้ดีมาก ฉันไม่ได้คาดหวังว่า C ++ จะแปลง Base * เป็น Derived * …
103 c++  gcc  boost 

4
ระดับการเพิ่มประสิทธิภาพ GCC มีกี่ระดับ?
ระดับการเพิ่มประสิทธิภาพGCCมีกี่ระดับ? ฉันลอง gcc -O1, gcc -O2, gcc -O3 และ gcc -O4 ถ้าฉันใช้จำนวนมากมันจะไม่ได้ผล อย่างไรก็ตามฉันได้พยายามแล้ว gcc -O100 และรวบรวม ระดับการเพิ่มประสิทธิภาพมีกี่ระดับ?

3
จะสร้างไลบรารีแบบคงที่ด้วย g ++ ได้อย่างไร
ใครช่วยบอกวิธีสร้างไลบรารีแบบคงที่จากไฟล์. cpp และ. hpp ได้ไหม ฉันต้องสร้าง. o และ. a หรือไม่? ฉันต้องการทราบว่าฉันจะรวบรวมไลบรารีแบบคงที่และใช้ในรหัส. cpp อื่นได้อย่างไร ฉันมีheader.cpp, ผมอยากจะสร้างheader.hpp . header.aทดสอบส่วนหัว a ในtest.cpp. ฉันใช้ g ++ ในการรวบรวม

4
ใช้ไลบรารี C ++ ในรหัส C
ฉันมีไลบรารี C ++ ที่มีคลาสต่างๆสำหรับจัดการข้อมูล ฉันมีซอร์สโค้ดสำหรับไลบรารี ฉันต้องการขยาย C ++ API เพื่อรองรับการเรียกฟังก์ชัน C เพื่อให้สามารถใช้ไลบรารีกับรหัส C และรหัส C ++ ได้ในเวลาเดียวกัน ฉันใช้โซ่เครื่องมือ GNU (gcc, glibc ฯลฯ ) ดังนั้นการรองรับภาษาและสถาปัตยกรรมจึงไม่ใช่ปัญหา มีสาเหตุใดบ้างที่ทำให้ไม่สามารถทำได้ในทางเทคนิค ? มีgotchaอะไรบ้างที่ฉันต้องระวัง? มีแหล่งข้อมูลโค้ดตัวอย่างและ / หรือเอกสารเกี่ยวกับเรื่องนี้หรือไม่ สิ่งอื่น ๆ ที่ฉันได้ค้นพบ: ใช้สิ่งต่อไปนี้เพื่อตัดส่วนหัว C ++ ของคุณที่จำเป็นต้องใช้โดยรหัส C #ifdef __cplusplus extern "C" { #endif // // Code goes here ... …
103 c++  c  gcc  glibc 

2
&& หมายถึงอะไรในโมฆะ * p = && abc;
void *p = &amp;&amp;abc;ฉันมาข้ามชิ้นส่วนของรหัส ความสำคัญของ&amp;&amp;ที่นี่คืออะไร? ฉันรู้เกี่ยวกับการอ้างอิง rvalue แต่ฉันคิดว่า&amp;&amp;ใช้ในบริบทนี้แตกต่างกัน อะไร&amp;&amp;บ่งชี้ในvoid *p = &amp;&amp;abc;?
102 c++  c  gcc  operators 

4
จะทราบได้อย่างไรว่าไฟล์ส่วนหัวมาจากไหน?
ฉันจะทราบได้อย่างไรว่า g ++ สามารถค้นหาไฟล์รวมได้อย่างไร โดยทั่วไปถ้าฉัน #include &lt;foo.h&gt; g ++ จะสแกนเส้นทางการค้นหาโดยใช้ตัวเลือกรวมใด ๆ เพื่อเพิ่มหรือแก้ไขเส้นทาง แต่ในตอนท้ายของวันมีวิธีใดบ้างที่ฉันสามารถบอกเส้นทางสัมบูรณ์ของ foo.h ที่ g ++ เลือกรวบรวมได้? เกี่ยวข้องโดยเฉพาะอย่างยิ่งหากมี foo.h มากกว่าหนึ่งรายการในเส้นทางการค้นหามากมาย สั้น ๆ วิธีที่จะทำให้สำเร็จ ... มีวิธีรับ g ++ เพื่อบอกฉันว่าเส้นทางการค้นหาสุดท้ายคืออะไรหลังจากรวมค่าเริ่มต้นและตัวเลือกทั้งหมดรวมถึง?
102 c++  c  gcc  include  g++ 

3
gcc 4.8 หรือบั๊กกี้รุ่นก่อนหน้าเกี่ยวกับนิพจน์ทั่วไปหรือไม่
ฉันพยายามใช้ std :: regex ในโค้ด C ++ 11 แต่ดูเหมือนว่าการรองรับนั้นค่อนข้างมีปัญหา ตัวอย่าง: #include &lt;regex&gt; #include &lt;iostream&gt; int main (int argc, const char * argv[]) { std::regex r("st|mt|tr"); std::cerr &lt;&lt; "st|mt|tr" &lt;&lt; " matches st? " &lt;&lt; std::regex_match("st", r) &lt;&lt; std::endl; std::cerr &lt;&lt; "st|mt|tr" &lt;&lt; " matches mt? " &lt;&lt; std::regex_match("mt", r) &lt;&lt; …
101 c++  regex  gcc  c++11  libstdc++ 

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