mpictor/StepClassLibrary — Issue #144: c++ libs using hash.c instead of scl_hash.cc
Author: mpictor
Created: 2012-02-22 10:01:48+00:00
State: open

Going through the memory warnings from the dw/memmgr branch, I noticed that p21read was using functions in `hash.c` instead of `scl_hash.cc`. I don't think that `p21read` or the `step*` libs should be linked to libexpress. However, I get a linker error when I make the following change.

```diff

diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
index e7382d2..aae45b5 100644
--- a/data/CMakeLists.txt
+++ b/data/CMakeLists.txt
@@ -72,7 +72,7 @@ FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE)
add_definitions( -DSCL_EDITOR_DLL_IMPORTS )
endif()
add_library( ${PROJECT_NAME} SHARED ${FEDEX_OUT} )
- target_link_libraries(${PROJECT_NAME} stepdai stepcore express stepeditor steputils )
+ target_link_libraries(${PROJECT_NAME} stepdai stepcore stepeditor steputils )
add_dependencies( ${PROJECT_NAME} generate_cpp_${SCHEMA_SHORT_NAME} )
set_target_properties( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
${${PROJECT_NAME}_COMPILE_FLAGS} )
diff --git a/src/clstepcore/CMakeLists.txt b/src/clstepcore/CMakeLists.txt
index 2faa888..1065026 100644
--- a/src/clstepcore/CMakeLists.txt
+++ b/src/clstepcore/CMakeLists.txt
@@ -83,7 +83,7 @@ include_directories(
${SCL_SOURCE_DIR}/src/clutils
)

-SCL_ADDLIB(stepcore "${LIBSTEPCORE_SRCS} ${LIBDEPEND_SRCS}" "express steputils stepdai")
+SCL_ADDLIB(stepcore "${LIBSTEPCORE_SRCS} ${LIBDEPEND_SRCS}" "steputils stepdai")
if(APPLE)
set_target_properties(stepcore PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
endif(APPLE)
```

linker error:

```
Linking CXX executable ../bin/p21read_sdai_ap227
../lib/libstepcore.so.3.2: undefined reference to `HASHinitialize'
```

I think that it should find the function in `steputils` - that lib is linked - but it doesn't.