Отже, у мене встановлено 32-розрядний Xubuntu 14.04.1. У нас є деякий код інтерфейсу, де ми маємо намір випустити SO для різних платформ, які ми підтримуємо, та Windows DLL. (Так я знаю, бінарний випуск поганий, але тут також не має значення.)
Я намагаюся створити 32-розрядні та 64-бітні SOs з 32-бітним 14.04.01, використовуючи -m32
/ -m64
gcc / g ++ аргументи. 32-бітна версія працює чудово, але 64-бітна версія не працює
/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory
Перевірка включає, що цей файл справді присутній для 32-розрядних, але відсутній для 64-розрядних.
Зрозумівши проблему, схоже, це було раніше в GCC / G ++ 4.6, але потім позначається як виправлене. Але 14.04.1 використовує GCC / G ++ 4.8, що говорить про те, що в цих бібліотеках в GCC / G ++ 4.8 відбувся регрес. Це щось таке, що хтось ще бачив?
Я міг би встановити новий VM для 64-розрядних 14.04.1, якщо це необхідно, і побачити, чи підбирає це правильну версію бібліотеки. Я хотів би не скоріше, якщо це можливо, тому що у мене є маса інших речей, які мені також доведеться перевстановити. Чи є краще рішення? І якби я встановив 64-розрядний 14.04.1, чи зможу я перекреслити компіляцію назад у 32-бітну версію, не пропускаючи заголовки в іншому напрямку?
g++-multilib
пакет?