diff --git a/src/libslic3r/Format/STEP.cpp b/src/libslic3r/Format/STEP.cpp index 9b4d2c9eab..bd99d073a5 100644 --- a/src/libslic3r/Format/STEP.cpp +++ b/src/libslic3r/Format/STEP.cpp @@ -21,6 +21,8 @@ LoadStepFn get_load_step_fn() { static LoadStepFn load_step_fn = nullptr; + constexpr const char* fn_name = "load_step_internal"; + if (!load_step_fn) { #ifdef _WIN32 HMODULE module = LoadLibraryW(L"OCCTWrapper.dll"); @@ -28,7 +30,6 @@ LoadStepFn get_load_step_fn() throw Slic3r::RuntimeError("Cannot load OCCTWrapper.dll"); try { - const char* fn_name = "load_step_internal"; FARPROC farproc = GetProcAddress(module, fn_name); if (! farproc) { DWORD ec = GetLastError(); @@ -47,7 +48,12 @@ LoadStepFn get_load_step_fn() load_step_fn = reinterpret_cast(dlsym(plugin_ptr, "load_step_internal")); if (!load_step_fn) { dlclose(plugin_ptr); + throw Slic3r::RuntimeError("Cannot load function from OCCTWrapper.so"); } + } else { + throw Slic3r::RuntimeError( + std::string("Cannot load function from OCCTWrapper.dll: ") + + fn_name + "\n\nError code: " + dlerror()); } #endif } diff --git a/src/occt_wrapper/CMakeLists.txt b/src/occt_wrapper/CMakeLists.txt index 2629e1d59e..ccdfb14a8e 100644 --- a/src/occt_wrapper/CMakeLists.txt +++ b/src/occt_wrapper/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.13) project(OCCTWrapper) -add_library(OCCTWrapper SHARED OCCTWrapper.cpp) +add_library(OCCTWrapper MODULE OCCTWrapper.cpp) set_target_properties(OCCTWrapper PROPERTIES