Tegnap telepítettem 64 bites Ubuntut a laptopomra, és a g++-t nem sikerült rávennem, hogy 32 bitre fordítson. Utánanéztem, elvileg a -m32 kapcsolót kell beállítani, de így meg hibaüzenetet adott:
$ g++ -m32 1.cpp
1.cpp: In function ‘int main(int, char**)’:
1.cpp:14:34: warning: format not a string literal and no format arguments
1.cpp:14:34: warning: format not a string literal and no format arguments
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/libstdc++.so when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
Interneten kerestem rá megoldást, mindenhol különböző csomagok telepítését ajánlották; feltettem őket, de nem sikerült működésre bírni, ugyanez a hibaüzenet maradt.
- 2122 megtekintés
Hozzászólások
Ilyesmibe én is beleszaladtam :( A Debian Squeeze -ben megoldották, hogy a 32 bites library -k is ott vannak és a fordító disztingvál közöttük, de ez sajnos csak a standard library -ra volt igaz. Amint elővettem a kedvenc liboop -t, nem tudtam "leilleszteni". A Debian -hoz van egy crosscompile project (most nem ugrik be mi a neve), ott kell körülnézni. Nem triviális a megoldás! Én a fordítottját akartam - azaz 32 bites rendszeren 64 -bitre forgatni - de egyszerűbb és gyorsabb megoldás volt egy másik, 64 bites rendszeren forgatni.
Jó lenne a végére járni, biztos hogy megoldható.
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
ez nem jo?
sudo ln -s /usr/lib/libstdc++.so.x.x.x /usr/lib/libstdc++.so
Az x.x.x helyere a verzioszam kerul.
- A hozzászóláshoz be kell jelentkezni
g++-4.*-multilib (lib32stdc++6-t húzza magával)
- A hozzászóláshoz be kell jelentkezni
A g++-4.5-multilib megoldotta a problémát, köszönet érte!
- A hozzászóláshoz be kell jelentkezni