Volgens dit bericht <arpa/inet.h>
is geen Windows-bibliotheek, dus winsock2.h
in plaats daarvan moet worden gebruikt.
Om deze referentie te wijzigen, heb ik het volgende gedaan**:
- Ga naar je installatiemap (c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1)
- Druk een niveau naar beneden in de cbson-map en zoek cbson.c
- Open cbson.c in je favoriete teksteditor en zoek de regel met de tekst
#include "<arpa/inet.h>"
- Verander die regel in
#include winsock2.h
- Open een opdrachtprompt, blader naar de installatiemap en voer
gem build bson_ext.gemspec
uit - Verplaats het nieuw gemaakte .gem-bestand naar een veilige plaats (bijvoorbeeld %userprofile%\Desktop).
- Ga naar de gem-map en verwijder de hele bson_ext-map
- Terug in je opdrachtpromptvenster, verander de map naar waar je het nieuw gemaakte .gem-bestand hebt geplaatst (cd %userprofile%\Desktop, als je deze stappen precies volgt)
- Voer
gem install bson_ext-1.11.1.gem --local
uit en de edelsteen zou nu met succes moeten worden geïnstalleerd.
** Enorm voorbehoud:ik ben net een mongodb voor rails-tutorial aan het doornemen en ik heb geen werkende code waarmee ik dit kan testen. Hoewel hiermee de installatiefout wordt verwijderd, kan ik niet bepalen of deze oplossing volledig is. Deze bibliotheekreferentie is nieuw voor de 1.11.1-release. Als u versie 1.10.2 installeert, zal dit probleem niet optreden (gem install bson_ext -v 1.10.2
). Ik laat het aan u over om te beslissen welke oplossing voor u het meest zinvol is.
Bewerken:op basis van een wijziging in het bson-ruby-project op github, zou een betere oplossing zijn om de volgende tekst te wijzigen:
#ifdef _WIN32
#include <winsock2.h>
#else
#include <arpa/inet.h>
#endif