# C++ extension for 5.12 is not working (MacOS)

**URL:** <https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542>\
**Category:** Support\
**Created:** [July 4, 2026, 5:27am UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542 "2026-07-04T05:27:37Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [July 4, 2026, 5:27am UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542/1 "2026-07-04T05:27:37Z")

</div>

@ebrahim @Sam_Horvath @lassoan this is urgent:

I just downloaded 5.12 for my MacOS, and quite a few of the C++ extension are installed but non-functional for due to library mismatch. I need these extensions for my SlicerMorph workshop starting on Monday:

1. SurfaceMarkups
2. Model2Model distance
3. Markups2Models
4. Sandbox
5. SegmentEditorExtraEffects

[Qt] Error(s):

[Qt] Cannot load library /Applications/Slicer.app/Contents/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/qt-loadable-modules/libqSlicerGridSurfaceMarkupsModule.dylib: (dlopen(/Applications/Slicer.app/Contents/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/qt-loadable-modules/libqSlicerGridSurfaceMarkupsModule.dylib, 0x0085): Library not loaded: @rpath/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib

[Qt] Referenced from: /Applications/Slicer.app/Contents/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/qt-loadable-modules/libqSlicerGridSurfaceMarkupsModule.dylib

[Qt] Reason: tried: ‘/D/S/A/teem-build/bin/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/Frameworks/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/Frameworks/QtCore.framework/Versions/5/Frameworks/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/MacOS/../Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file))

[Qt] Error(s):

[Qt] Cannot load library /Applications/Slicer.app/Contents/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/qt-loadable-modules/libqSlicerMarkupsToModelModule.dylib: (dlopen(/Applications/Slicer.app/Contents/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/qt-loadable-modules/libqSlicerMarkupsToModelModule.dylib, 0x0085): Library not loaded: @rpath/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib

[Qt] Referenced from: \<9E032141-621C-3FE9-9137-A62E008DB619\> /Applications/Slicer.app/Contents/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/qt-loadable-modules/libqSlicerMarkupsToModelModule.dylib

[Qt] Reason: tried: ‘/D/S/A/teem-build/bin/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/Frameworks/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/Frameworks/QtCore.framework/Versions/5/Frameworks/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/MacOS/../Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/MarkupsToModel/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file))

dlopen(/Applications/Slicer.app/Contents/Extensions-34621/Sandbox/lib/Slicer-5.12/qt-loadable-modules/vtkSlicerCombineModelsModuleLogicPython.so, 0x0002): Library not loaded: @rpath/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib

Referenced from: /Applications/Slicer.app/Contents/Extensions-34621/Sandbox/lib/Slicer-5.12/qt-loadable-modules/vtkSlicerCombineModelsModuleLogicPython.so

Reason: tried: ‘/D/S/A/teem-build/bin/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/MacOS/../Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/Sandbox/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file)

[Qt] libpng warning: iCCP: profile ‘ICC Profile’: ‘CMYK’: invalid ICC profile color space

[Qt] libpng warning: iCCP: known incorrect sRGB profile

dlopen(/Applications/Slicer.app/Contents/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/qt-loadable-modules/vtkSlicerSegmentEditorFastMarchingModuleLogicPython.so, 0x0002): Library not loaded: @rpath/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib

Referenced from: \<76343D83-A509-3A6C-8A39-11770DC16B0A\> /Applications/Slicer.app/Contents/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/qt-loadable-modules/vtkSlicerSegmentEditorFastMarchingModuleLogicPython.so

Reason: tried: ‘/D/S/A/teem-build/bin/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/qRestAPI-build/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/qRestAPI-build/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/Applications/Slicer.app/Contents/MacOS/../Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/CTK-build/CMakeExternals/Install/lib/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/D/S/A/teem-build/bin/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file), ‘/System/Volumes/Preboot/Cryptexes/OS/D/S/A/teem-build/bin/Extensions-34621/SegmentEditorExtraEffects/lib/Slicer-5.12/libopenjp2.7.dylib’ (no such file)

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [July 4, 2026, 5:39am UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542/2 "2026-07-04T05:39:14Z")

</div>

@ebrahim @Sam_Horvath This is claude’s diagnosis:

This is a **known Slicer packaging bug on macOS** , not a problem with your install or with SurfaceMarkup specifically — and I confirmed it directly on your machine: every C++ loadable extension you have installed ( **SurfaceMarkup, MarkupsToModel, Sandbox, SegmentEditorExtraEffects** ) has the same defect, so they will all fail to load the same way.

**The chain of causes:**

1. Slicer 5.12 ships DCMTK with JPEG 2000 support via OpenJPEG. DCMTK’s `dcmjp2kcs` module exported `openjp2` in its _public_ CMake link interface, so every extension that links anything DCMTK-related (which is essentially any C++ extension, via the Slicer base libraries) ends up with a direct load command on `libopenjp2.7.dylib` — even though none of them use JPEG 2000. I verified with `otool -L`: your SurfaceMarkup module directly references `@rpath/Extensions-34621/SurfaceMarkup/lib/Slicer-5.12/libopenjp2.7.dylib`.
2. The extension packaging step rewrites that reference to point inside the extension’s own lib folder, but **never copies `libopenjp2.7.dylib` into the extension package**. The file simply isn’t there, so `dlopen` fails and the module doesn’t load. (The garbage “tried: /D/S/A/teem-build/…” paths are leftover rpaths from the factory build machine — a red herring.)

This was fixed upstream three days ago in [Slicer PR #9263](https://github.com/Slicer/Slicer/pull/9263) (merged 2026-06-30, to `main`), which makes DCMTK link OpenJPEG privately — the PR description even cites MarkupsToModel as the affected example. A related fix, [PR #9228](https://github.com/Slicer/Slicer/pull/9228), addressed the missing lib in the main app package. Because the 5.12 stable app (rev 34621) is already released, the extensions built for it still carry the over-linked reference until the factory’s stable build tree picks up the fix and rebuilds the extensions.

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [July 4, 2026, 10:53am UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542/3 "2026-07-04T10:53:46Z")

</div>

Indeed this issue is present for specifically macOS when using Slicer 5.12. It was fixed in the recent preview. For Monday you’ll either need to use latest Slicer Preview or continue to use Slicer 5.10.

A Slicer 5.12.1 won’t be finalized yet for Monday.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [July 4, 2026, 11:25am UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542/4 "2026-07-04T11:25:46Z")

</div>

Sorry for the inconvenience. Automated testing and testing on developer computers did not detect this issue, as it only appears if the application is installed, on macOS, when the extension contain loadable modules.

You can use other versions, as @jamesobutler described. Some more details:

If convenient installation is important then Slicer-5.10 is the better option, because it is signed, so you don’t need jump through a lot of hoops to allow installation. → [Download 3D Slicer | 3D Slicer](https://download.slicer.org/?version=5.10)

If you need some of the latest features or fixes then you can use yesterday’s preview release. Don’t use the very latest version, because depending on the time of day, the extension on macOS may not be available yet (due to some macOS factory issue, which will be fixed in the next couple of days by replacing the machine). → [Download 3D Slicer | 3D Slicer](https://download.slicer.org/?date=2026-06-30)

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [July 4, 2026, 1:17pm UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542/5 "2026-07-04T13:17:38Z")

</div>

Unfortunately 5.10 lacks some of the features so it is not an option. And I don’t want to make people to download multiple versions either.

I am curious why it takes so long to build the stable. Looks like PR is from 3 days ago?

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [July 4, 2026, 2:43pm UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542/6 "2026-07-04T14:43:04Z")

</div>

It’s not the build time, it’s the manual steps required to sign and update things that make it a bit of a pain now to generate a patch release.

For Monday I’d suggest just using the Preview build and removing the quarantine flag on macs.

People can just do `xattr -dr com.apple.quarantine /Applications/Slicer.app`

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [July 4, 2026, 4:16pm UTC](https://discourse.slicer.org/t/c-extension-for-5-12-is-not-working-macos/47542/7 "2026-07-04T16:16:32Z")

</div>

> [@muratmaga](#):
>
> And I don’t want to make people to download multiple versions either

There is no need for multiple versions. Everyone can download the same working Slicer Preview Release from this link: [https://download.slicer.org/?date=2026-07-02](https://download.slicer.org/?date=2026-07-02).

The annoying part is the 4-5 extra clicks needed for installing an unsigned package on Windows and macOS. On macOS those extra clicks are in System Settings (or need to type the terminal as @pieper described above).
