Odd question: I’m building a static library with Visual Studio and I’m using a source file with a list of utility functions that I also use in the executable project that is importing the static library. As a result I’m getting errors like this:
4>newfuncs.lib(util.obj) : error LNK2005: _shift_left already defined in util.obj
4>newfuncs.lib(util.obj) : error LNK2005: _chop already defined in util.obj
4>newfuncs.lib(util.obj) : error LNK2005: _crc_begin already defined in util.obj
4>newfuncs.lib(util.obj) : error LNK2005: _crc_update already defined in util.obj
4>newfuncs.lib(util.obj) : error LNK2005: _crc_result already defined in util.obj
4>newfuncs.lib(util.obj) : error LNK2005: _strtok_r already defined in util.obj
Anyone know how I could figure out how to get Visual Studio to NOT export the functions in util.obj, since those are natively present in the actual executable project.
So, figured it out: if you use the pragma statement it will integrate the functions into your static library. In my case I put:
in a header and it imported
libevinto my library. Now when I actually wrote my executable I only needed to link against my library: there is no additionallibevdependency.