DiscussionsIssue archiveOCCT:Configuration

Archived issue #0030072

Name collisions between the debug and release library names

CommunityOCCT:Configurationassigned0 public notes

Search issues

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.

Public activity

No public notes

Participants are labeled by their role within this record.