Temporary header file '/tmp/uaCYxPC4uz/dump1.h' with the following content will be compiled to create GCC translation unit dump: // add defines #define __STDC_VERSION__ 201710L #define _TIME_BITS 64 #define _FILE_OFFSET_BITS 64 #define _GXX_NULLPTR_T #define CLUTTER_ENABLE_COMPOSITOR_API 1 #define _REGEX_NELTS(n) #define _Atomic #define PACKED #define getaddrinfo_a(a,b,c,d) // add includes #include "/usr/include/libfreenect.h" #include "/usr/include/libfreenect.hpp" #include "/usr/include/libfreenect_audio.h" #include "/usr/include/libfreenect_registration.h" #include "/usr/include/libfreenect_sync.h" // add namespaces namespace Freenect{typedef int tmp_add_type_1;} Freenect::tmp_add_type_1 tmp_add_func_1(){return 0;}; // add classes _G_fpos64_t* tmp_add_class_0; _G_fpos_t* tmp_add_class_1; _IO_cookie_io_functions_t* tmp_add_class_2; freenect_device_attributes* tmp_add_class_3; itimerval* tmp_add_class_4; libusb_bos_descriptor* tmp_add_class_5; libusb_bos_dev_capability_descriptor* tmp_add_class_6; libusb_config_descriptor* tmp_add_class_7; libusb_container_id_descriptor* tmp_add_class_8; libusb_control_setup* tmp_add_class_9; libusb_device_descriptor* tmp_add_class_10; libusb_endpoint_descriptor* tmp_add_class_11; libusb_interface* tmp_add_class_12; libusb_interface_descriptor* tmp_add_class_13; libusb_iso_packet_descriptor* tmp_add_class_14; libusb_pollfd* tmp_add_class_15; libusb_ss_endpoint_companion_descriptor* tmp_add_class_16; libusb_ss_usb_device_capability_descriptor* tmp_add_class_17; libusb_transfer* tmp_add_class_18; libusb_usb_2_0_extension_descriptor* tmp_add_class_19; libusb_version* tmp_add_class_20; The GCC parameters: gcc -fdump-lang-raw -fkeep-inline-functions -c -x c++ -fpermissive -w "/tmp/uaCYxPC4uz/dump1.h" -I/usr/include/libusb-1.0