C++ libraries på Windows


Gå til bund
Gravatar

#1 arne_v 26. mar. 2020 16:47

Jeg har altid hadet at skulle bruge et open source C++ library på Windows.

Forsøger man at builde source så mangler man et tool eller man har en forkert version eller en forkert opsætning og man får et hav af build errors.

Henter man en binary distribution så virker det ikke fordi den er oversat med en anden compiler eller anden version end den man bruger.

Men for en måned siden faldt jeg over VCPKG.

De har langfra alt. Men det de har virker bare. En enkelt komamndo og X minutter så har man en build med .h, .lib og .dll. Ingen fejl. OK - to komamndoer hvis man vil have både 32 og 64 bit udgaven.

Jeg er lidt imponeret.
The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#2 Claus Jørgensen 27. mar. 2020 14:59

Jeg har bare generelt altid hadet at skulle bygge open source der afhænger af en masse 3rd party tools.

For et års tid siden prøvede engang at bygge Google's Protobuf på arbejde (på en Mac). Det har hundredevis af dependencies som de ikke inkludere, intet script til at hente dem, og nogle af dem kræver at man henter filer via. en FTP server (W T F!). Og i mange tilfælde skal man selve støve deres dependencies op ved at søge efter filnavnene på internettet og håbe man finder det rigtige.

C/C++ open source projekter er også helt klart de værste syndere på dette her punkt.

.NET har NuGet, Swift/ObjC har CocoaPods/SwiftPM, JavaScript/TS har npm. -- dedikerede services til open source kode / binaries. Hvorimod C/C++ afhænger often af et obskurt Linux specifikt package-manager system eller lign (eller bare forventer at folk har alting lokalt på deres maskine til at begynde med, ligesom Google med de fleste af deres open source projekter).



Gravatar

#3 arne_v 27. mar. 2020 15:16

Claus Jørgensen (2) skrev:

Jeg har bare generelt altid hadet at skulle bygge open source der afhænger af en masse 3rd party tools.

For et års tid siden prøvede engang at bygge Google's Protobuf på arbejde (på en Mac). Det har hundredevis af dependencies som de ikke inkludere, intet script til at hente dem, og nogle af dem kræver at man henter filer via. en FTP server (W T F!). Og i mange tilfælde skal man selve støve deres dependencies op ved at søge efter filnavnene på internettet og håbe man finder det rigtige.
[quote]

Ja.

Men det er sådan noget VCPKG håndterer.

Google ProtoBuf:

åben CMD vindue
vcpkg install protobuf:x64-windows
vent 5 minutter
done

[quote=Claus Jørgensen (2)]
C/C++ open source projekter er også helt klart de værste syndere på dette her punkt.

.NET har NuGet, Swift/ObjC har CocoaPods/SwiftPM, JavaScript/TS har npm. -- dedikerede services til open source kode / binaries. Hvorimod C/C++ afhænger often af et obskurt Linux specifikt package-manager system eller lign (eller bare forventer at folk har alting lokalt på deres maskine til at begynde med, ligesom Google med de fleste af deres open source projekter).


(eller Java Maven)

Ja - de andre har haft det længe.

Men nu har C++ det også med VCPKG.

The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#4 arne_v 27. mar. 2020 15:22

VCPKG er faktisk også tilgængelig på Linux og macOS.

Men jeg ser ikke det store behov på Linux. CentOS og Ubuntu indbygget package manager kan normalt finde det jeg skal bruge.

Ingen anelse om macOS.
The greater danger for most of us lies not in setting our aim too high and falling short; but in setting our aim too low, and achieving our mark.
Gravatar

#5 dub 27. mar. 2020 19:01

På macOS er der Homebrew. https://brew.sh
Skal man installere protobuf så er det bare
brew install protobuf
og den virker ligesom en package manager på linux ... bare bedre.
Cheerleader for videnskab.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login