How should/could/must I handle the dll that my C++ projects depend on? -
i'm lost here , have no clue how proceed. not question how make program work, question how stop wasting time.
my programming environment visual studio 2013 on windows, in c++.
i use 3 libraries extensively, namely: boost (using dynamic linking), opencv, , qt.
during development, have configured vs @ 3 libraries default include , .lib. have added 3 folders containing dlls path environment variable.
it works, sometime painful, let me explain when.
first hassle: anytime have lnk error telling me miss function, on opencv since has 1 include file referencing functions. have @ opencv's source code see module function belongs , know must link program to.
second hassle: when comes time deploy application, have ship relevant dlls. know 1 need, open dependency walker , try forget nothing, have test on different computer because 102% of time have missed couple, , have configure installer generator include 1 one.
third hassle: ease little bit process of configuring new development machine, have switched nuget. great, add boost couple of clicks project. boost dlls everywhere, have 1 folder per boost library, , since there dozens of can't add them @ once path now, have move them manually appropriate folder, , not want not-so-precious-but-who-are-you-to-judge time
i have looked around , couldn't find practice regarding issue, maybe because obvious, or specific particular setup.
how you do? how if me?
we put our external dependencies in version control along code. ensures code can build "out of box" on of our development machines , ensures given version of code, know dependencies has.
the best way check missing dependencies how have automated test suite, if you've got comprehensive converge if tests pass must have deployed required libraries.
in terms of linking appropriate libraries, unfortunately, sounds issue structure of opencv (i'm not familiar opencv). tend use dumpbin under windows , nm under linux grep symbols when link errors unfamiliar library.
Comments
Post a Comment