I’m trying to get a libary file generated using OpenVPN3 and I’m having difficulty building it with java. I changed CMakeLists.txt in the clients folder this way:
include(findcoredeps)
include(findswigdeps)
if (BUILD_SWIG_LIB)
set_property(SOURCE ovpncli.i PROPERTY CPLUSPLUS ON)
if (NOT MSVC OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set_property(SOURCE ovpncli.i PROPERTY GENERATED_COMPILE_OPTIONS -Wno-deprecated-declarations -Wno-sometimes-uninitialized -Wno-class-memaccess -Wno-unused-function -Wno-unknown-warning-option)
endif()
swig_add_library(ovpnclilib
TYPE SHARED
LANGUAGE java
SOURCES ovpncli.cpp ovpncli.i
)
set_property(TARGET ovpnclilib PROPERTY SWIG_INCLUDE_DIRECTORIES ${CORE_DIR})
add_core_dependencies(ovpnclilib)
find_package(Java REQUIRED)
find_package(JNI REQUIRED)
target_link_libraries(ovpnclilib ${JNI_LIBRARIES})
target_include_directories(ovpnclilib PRIVATE ${JNI_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR})
set_target_properties(ovpnclilib PROPERTIES OUTPUT_NAME "_ovpncli")
set_target_properties(ovpnclilib PROPERTIES PREFIX "")
endif ()
the rest of the files remained unchanged.
When I’m trying to build lib in Visual Studio, I get the following errors:
ovpncliJAVA_wrap.obj : error LNK2001: unresolved external symbol "private: virtual void __cdecl openvpn::ClientAPI::OpenVPNClient::connect_attach(void)" (?connect_attach@OpenVPNClient@ClientAPI@openvpn@@EEAAXXZ)
ovpncliJAVA_wrap.obj : error LNK2001: unresolved external symbol "private: virtual void __cdecl openvpn::ClientAPI::OpenVPNClient::connect_pre_run(void)" (?connect_pre_run@OpenVPNClient@ClientAPI@openvpn@@EEAAXXZ)
ovpncliJAVA_wrap.obj : error LNK2001: unresolved external symbol "private: virtual void __cdecl openvpn::ClientAPI::OpenVPNClient::connect_run(void)" (?connect_run@OpenVPNClient@ClientAPI@openvpn@@EEAAXXZ)
ovpncliJAVA_wrap.obj : error LNK2001: unresolved external symbol "private: virtual void __cdecl openvpn::ClientAPI::OpenVPNClient::connect_session_stop(void)" (?connect_session_stop@OpenVPNClient@ClientAPI@openvpn@@EEAAXXZ)
ovpncliJAVA_wrap.obj : error LNK2001: unresolved external symbol "private: virtual class openvpn::Stop * __cdecl openvpn::ClientAPI::OpenVPNClient::get_async_stop(void)" (?get_async_stop@OpenVPNClient@ClientAPI@openvpn@@EEAAPEAVStop@3@XZ)
Does anyone know the correct way to compile it? Or the actions that need to do for the java build?
New contributor
verty dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.