У меня есть проект в чистой библиотеке C-st usb, и мне нужно перенести его на C++ и сменить те же структуры на классы. Я удалил все C++ "виды защиты", как:C переход на C++ (встроенный)
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
Я изменил все расширения файлов из .c
в .cpp
(кроме библиотеки HAL). Я понял, что C++ .hex
меньше 7kB, а c .hex
. Когда я просмотрел файл .map
, я увидел, что многие функции отсутствуют. Я думал, что функции static
вызвали это, но удаление static
ключевого слова не помогло. Кто-нибудь знает, что может привести к тому, что некоторые функции не были скомпилированы. Когда расширения .c
все в порядке.
Только для записи: для компилятора и компоновщика расширение файла не имеет значения. –
Несколько вещей, которые было бы интересно узнать: 7kB меньше по сравнению с общим размером? Вы просто потеряли определения функций или потеряли функциональность программного обеспечения? –
30kB в C, 23kB в C++. Я потерял функциональность. Когда скомпилировано на c ПК распознает мое устройство, то при компиляции в C++ это не так. – legier