View Issue Details

IDProjectCategoryView StatusLast Update
0030072CommunityOCCT:Configurationpublic2021-09-03 14:13
ReporterRoman Lygin Assigned Tobugmaster  
PrioritynormalSeverityfeature 
Status assignedResolutionopen 
Product Version7.3.0 
Target Version7.7.0 
Summary0030072: Name collisions between the debug and release library names
DescriptionOCC 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.
TagsNo tags attached.
Test case number

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
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
2019-07-10 21:12 abv Target Version 7.4.0 => 7.5.0
2019-09-20 09:13 kgv Severity minor => feature
2020-09-11 15:37 utverdov Assigned To apn => inv
2020-09-11 15:40 utverdov 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