|View Issue Details [ Jump to Notes ] ||[ Issue History ] [ Print ] |
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0030072||Community||[OCCT] OCCT:Configuration||public||2018-08-17 20:23||2019-09-20 09:13|
|Reporter||Roman Lygin|| |
|Assigned To||apn|| |
|Product Version||[OCCT] 7.3.0|| |
|Target Version||[OCCT] 7.5.0*||Fixed in Version|| |
|Summary||0030072: Name collisions between the debug and release library names|
|Description||OCC uses the same names for both debug and release libraries (e.g. TKernel.dll or libTKernel.so) and uses multi-directory approach (./bin vs ./bind, or ./lib vs ./libd) to distinguish between the two. The more frequent convention though tends to prefer distinct names (msvcrt vs msvcrtd, tbb vs tbb_debug, Qt*[d], etc).|
We encountered a customer report who uses OCC but for strict external requirement has to place all redistributables in a single directory. This is enforced by the downstream target environment which is non-negotiable. So in that environment the name clash is unavoidable.
The customer has to patch the OCC build script to inject distinct names for debug libraries (like '_debug' suffix) which obviously break dependency chain with other OCC-based libraries (such as CAD Exchanger) which use default OCC naming. We can work-around the case by offering a specific build using the patched build scripts but I wonder if such an example would convince the OCC team to revisit the approach and favor the distinct name conventions favored by the majority of the C++ libraries.
Using single or dual directory (./bin vs ./bind) won't matter but distinct names will allow far better coexistence of several OCC-based binaries (Open Source or proprietary) or even of a single OCC-based solution under a requirement of a single directory for both debug and release binaries.
|Tags||No tags attached.|
|Test case number|