We’ve managed to build our c++11/14 daemon through static linking.
Something like the following CMakeLists.txt example:
cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
project(example_cpp14 VERSION 0.0.1 LANGUAGES CXX)
include_directories(include
lib/include
...
)
add_executable(${PROJECT_NAME}
src/main_cpp14.cpp
lib/src/lib_cpp14.cpp
...
)
target_link_libraries(${PROJECT_NAME}
PUBLIC
# the following library list order is crucial!
xmlrpc_server_abyss++
xmlrpc_server_abyss
xmlrpc_server_pstream++
xmlrpc_server
xmlrpc_abyss
xmlrpc_server++
xmlrpc++
xmlrpc
xmlrpc_packetsocket
xmlrpc_xmlparse
xmlrpc_xmltok
xmlrpc_util
curl
pthread
)
set_target_properties(${PROJECT_NAME}
PROPERTIES
CXX_STANDARD 14
CXX_STANDARD_REQUIRED ON
COMPILE_FLAGS "-m32 -march=i686"
LINK_FLAGS "-m32 -static-libstdc++ -static-libgcc -static"
)
install(
TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION ${PROJECT_SOURCE_DIR}/../src/main/resources/com/example_company/example_urcap_cpp14/impl/daemon
)
Of course you need all the 32-bit static librariy files, i.e. *.a libraries to successfully compile through cmake.