Ifølge dette indlæg <arpa/inet.h>
er ikke et Windows-bibliotek, så winsock2.h
skal bruges i stedet.
For at ændre denne reference har jeg gjort følgende**:
- Gå til din installationsmappe (c:/Ruby193/lib/ruby/gems/1.9.1/gems/bson_ext-1.11.1)
- Drill et niveau ned i cbson-mappen og find cbson.c
- Åbn cbson.c i dit foretrukne tekstredigeringsprogram, og find linjen, der lyder
#include "<arpa/inet.h>"
- Skift den linje til
#include winsock2.h
- Åbn en kommandoprompt, gå til installationsmappen, og kør
gem build bson_ext.gemspec
- Flyt den nyoprettede .gem-fil et sikkert sted (f.eks. %userprofile%\Desktop).
- Gå op til gem-mappen og slet hele mappen bson_ext
- Tilbage i dit kommandopromptvindue, skift mappe til det sted, hvor du placerede den nyoprettede .gem-fil (cd %userprofile%\Desktop, hvis du følger disse trin nøjagtigt)
- Kør
gem install bson_ext-1.11.1.gem --local
og ædelstenen skulle nu installeres med succes.
** Kæmpe advarsel:Jeg kører lige gennem en mongodb for rails-tutorial, og jeg har ikke nogen fungerende kode til at teste dette med. Selvom dette fjerner installationsfejlen, har jeg ingen måde at afgøre, om denne rettelse er en komplet. Denne biblioteksreference er ny for 1.11.1-udgivelsen. Hvis du installerer version 1.10.2 vil dette problem ikke opstå (gem install bson_ext -v 1.10.2
). Jeg overlader det til dig at beslutte, hvilken løsning der giver mest mening for dig.
Rediger:Baseret på en ændring af bson-ruby-projektet på github, ville en bedre løsning være at ændre den inkluderet til at læse sådan her:
#ifdef _WIN32
#include <winsock2.h>
#else
#include <arpa/inet.h>
#endif