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

4
CFLAGS กับ CPPFLAGS
ฉันเข้าใจว่า CFLAGS (หรือ CXXFLAGS สำหรับ C ++) มีไว้สำหรับคอมไพเลอร์ในขณะที่ CPPFLAGS ถูกใช้โดยตัวประมวลผลล่วงหน้า แต่ฉันยังไม่เข้าใจความแตกต่าง ฉันจำเป็นต้องระบุพา ธ รวมสำหรับไฟล์ส่วนหัวที่มาพร้อมกับ #include - เนื่องจาก #include เป็นคำสั่งของตัวประมวลผลก่อนตัวประมวลผลล่วงหน้า (CPPFLAGS) เป็นสิ่งเดียวที่ฉันสนใจหรือไม่ ฉันต้องให้เส้นทางการรวมเพิ่มเติมแก่คอมไพเลอร์ภายใต้สถานการณ์ใด โดยทั่วไปหากตัวประมวลผลก่อนค้นหาและรวมไฟล์ส่วนหัวที่จำเป็นเหตุใดจึงจำเป็นต้องแจ้งเกี่ยวกับไดเร็กทอรีรวมพิเศษ CFLAGS ใช้อะไรได้บ้าง? (ในกรณีของฉันฉันพบว่าทั้งสองอย่างนี้อนุญาตให้ฉันรวบรวมโปรแกรมของฉันได้ซึ่งทำให้เกิดความสับสน ... ฉันสามารถใช้ CFLAGS หรือ CPPFLAGS เพื่อบรรลุเป้าหมายของฉัน (ในบริบทอัตโนมัติอย่างน้อยที่สุด) อะไรให้อะไร)

4
ตั้งค่าตัวเลือก CFLAGS และ CXXFLAGS โดยใช้ CMake
ฉันแค่ต้องการดีบักโค้ดบางตัวที่ทำงานบน Linux และฉันต้องการ debug build ( -O0 -ggdb) ดังนั้นฉันจึงเพิ่มสิ่งเหล่านี้ในCMakeLists.txt: set(CMAKE_BUILD_TYPE DEBUG) set(CMAKE_C_FLAGS "-O0 -ggdb") set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") set(CMAKE_C_FLAGS_RELEASE "-O0 -ggdb") set(CMAKE_CXX_FLAGS "-O0 -ggdb") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") set(CMAKE_CXX_FLAGS_RELEASE "-O0 -ggdb") เมื่อฉันพยายามรวบรวมฉันเปิดใช้ verbose make VERBOSE=1 และฉันสังเกตเห็นผลลัพธ์เช่นนี้ ... /usr/bin/c++ -D_BSD_SOURCE **-O0 -ggdb** -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions …
90 cmake  cflags 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.