View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0030072||Community||OCCT:Configuration||public||2018-08-17 20:23||2022-10-24 10:38|
|Reporter||Roman Lygin||Assigned To||bugmaster|
|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|
|2018-08-17 20:23||Roman Lygin||New Issue|
|2018-08-17 20:23||Roman Lygin||Assigned To||=> bugmaster|
|2018-08-28 13:40||bugmaster||Assigned To||bugmaster => apn|
|2018-08-28 13:40||bugmaster||Status||new => assigned|
||Target Version||7.4.0 => 7.5.0|
|2019-09-20 09:13||kgv||Severity||minor => feature|
||Assigned To||apn => inv|
||Target Version||7.5.0 => 7.6.0|
|2020-09-11 17:08||bugmaster||Assigned To||inv => bugmaster|
|2021-09-03 14:13||bugmaster||Target Version||7.6.0 => 7.7.0|
||Target Version||7.7.0 => 7.8.0|