Mam więc zainstalowany 32-bitowy Xubuntu 14.04.1. Mamy kod interfejsu, w którym zamierzamy wydać SO dla różnych platform, które obsługujemy, i biblioteki DLL Windows. (Tak, wiem, wydanie binarne jest złe, ale również tutaj nie dotyczy.)
Próbuję zbudować 32-bitowe i 64-bitowe SO z 32-bitowym 14.04.01, używając argumentów -m32
/ -m64
gcc / g ++. Wersja 32-bitowa działa dobrze, ale wersja 64-bitowa kończy się niepowodzeniem
/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory
Po sprawdzeniu załączników plik ten jest rzeczywiście obecny w wersji 32-bitowej, ale brakuje go w wersji 64-bitowej.
Googlując problem, wydaje się, że zdarzyło się to w przeszłości dla GCC / G ++ 4.6, ale potem jest oznaczone jako naprawione. Ale 14.04.1 używa GCC / G ++ 4.8, co sugeruje regresję w tych bibliotekach w GCC / G ++ 4.8. Czy to coś, co widział ktoś inny?
W razie potrzeby mógłbym skonfigurować nową maszynę wirtualną dla 64-bitowego 14.04.1 i sprawdzić, czy wybrałoby to odpowiednie wersje bibliotek. Raczej nie, jeśli to możliwe, ponieważ mam wiele innych rzeczy, które musiałbym również zainstalować ponownie. Czy jest lepsze rozwiązanie? A jeśli zainstalowałbym 64-bitowy 14.04.1, czy na pewno byłbym w stanie przeprowadzić kompilację krzyżową z powrotem do 32-bitowej bez utraty nagłówków w innym kierunku?
g++-multilib
pakiet?