beldmit: (Программизм)
[personal profile] beldmit
Наступил на грабли. gcc и g++ дают разный размер довольно развесистой структуры, используемой в сишной и плюсовой библиотеках.

Можно ли малой кровью их привести к единому знаменателю? С-шная библиотека не наша, плюсовая наша.

Вроде бы везде стоят флаги
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

Опцию -fpack-struct пробовал, не преуспел.

Update: разные опции сборки базовой и производной библиотек.

Date: 2019-07-11 06:00 pm (UTC)
vladimir000: (Default)
From: [personal profile] vladimir000
Ну в принципе если кровь из носу надо, можно сделать структуру, в которй челенами будут юнионы-битовые поля...

Кажется, такая порнография еще не запрещена и результат нужный выдаст...

Date: 2019-07-12 05:01 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Поэтому нужно докопаться до сути. Вплоть до чтения исходников компилятора. Вот после того, как будешь понимать почему именно так произошло, и почему так не проихсодит у других, и все спокойно передают из C++-ного кода структуры в C-шные библиотеки и обратно, а в этом случае не получается, тогда получится сделать надежное (ну в рамках текущего поколения компиляторов) решение.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 11:26 am
Powered by Dreamwidth Studios