Poco 및 mysql 빌드 오류
안녕하세요?
리눅스에서 mysql을 사용하려고 POCO 라이브러를 사용하였습니다.
현재 테스트 프로그램을 만들어 접속 및 간단한 SQL문장을 실행하려고합니다.
그런대 다음과 같은 빌드 오류가 났습니다.
OS : Centos 7 64bit
POCO : poco-1.7.8p2-all/
사용하는 툴은
CLion
CMake :
cmake_minimum_required(VERSION 3.7)
project(TestMariaDB)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp DBManager.cpp DBManager.h)
add_executable(TestMariaDB ${SOURCE_FILES})
# set the POCO paths and libs
set(POCO_PREFIX "/usr")
# the directory containing "include" and "lib"
set(POCO_INCLUDE_DIR "${POCO_PREFIX}/include")
set(POCO_LIB_DIR "${POCO_PREFIX}/local/lib")
#set(POCO_LIB_DIR "/home/mud0107dev/Desktop/DevTools/Libs/poco-1.7.8p2-all/lib/Linux/x86_64")
set(POCO_LIBS
"${POCO_LIB_DIR}/libPocoCryptod.so"
"${POCO_LIB_DIR}/libPocoDatad.so"
#"${POCO_LIB_DIR}/libPocoDataMySQL.so}"
"/usr/local/lib/libPocoDataMySQLd.so"
"${POCO_LIB_DIR}/libPocoDataSQLited.so"
"${POCO_LIB_DIR}/libPocoDatad.so"
"${POCO_LIB_DIR}/libPocoFoundationd.so"
"${POCO_LIB_DIR}/libPocoJSONd.so"
"${POCO_LIB_DIR}/libPocoMongoDB.so"
"${POCO_LIB_DIR}/libPocoNet.so"
"${POCO_LIB_DIR}/libPocoNetSSLd.so"
"${POCO_LIB_DIR}/libPocoUtild.so"
"${POCO_LIB_DIR}/libPocoXMLd.so"
"${POCO_LIB_DIR}/libPocoZipd.so"
"pthread")
# mysql
set(MYSQL_INCLUDE_DIR "${POCO_PREFIX}/local/include/mysql")
# set the include path for the app
target_include_directories(TestMariaDB PRIVATE "${POCO_INCLUDE_DIR}"
PUBLIC "${MYSQL_INCLUDE_DIR}" )
# link the app against POCO
target_link_libraries(TestMariaDB "${POCO_LIBS}" "${CRYPTO_LIBS}" "${CRYPTOPP_LIBS}" )
#target_link_libraries(TestMariaDB "${POCO_LIBS}" )
실제 메이크 파일 내용은
cmake_minimum_required(VERSION 3.7)
project(TestMariaDB)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp DBManager.cpp DBManager.h)
add_executable(TestMariaDB ${SOURCE_FILES})
# set the POCO paths and libs
set(POCO_PREFIX "/usr")
# the directory containing "include" and "lib"
set(POCO_INCLUDE_DIR "${POCO_PREFIX}/include")
set(POCO_LIB_DIR "${POCO_PREFIX}/local/lib")
#set(POCO_LIB_DIR "/home/mud0107dev/Desktop/DevTools/Libs/poco-1.7.8p2-all/lib/Linux/x86_64")
set(POCO_LIBS
"${POCO_LIB_DIR}/libPocoCryptod.so"
"${POCO_LIB_DIR}/libPocoDatad.so"
#"${POCO_LIB_DIR}/libPocoDataMySQL.so}"
"/usr/local/lib/libPocoDataMySQLd.so"
"${POCO_LIB_DIR}/libPocoDataSQLited.so"
"${POCO_LIB_DIR}/libPocoDatad.so"
"${POCO_LIB_DIR}/libPocoFoundationd.so"
"${POCO_LIB_DIR}/libPocoJSONd.so"
"${POCO_LIB_DIR}/libPocoMongoDB.so"
"${POCO_LIB_DIR}/libPocoNet.so"
"${POCO_LIB_DIR}/libPocoNetSSLd.so"
"${POCO_LIB_DIR}/libPocoUtild.so"
"${POCO_LIB_DIR}/libPocoXMLd.so"
"${POCO_LIB_DIR}/libPocoZipd.so"
"pthread")
# mysql
set(MYSQL_INCLUDE_DIR "${POCO_PREFIX}/local/include/mysql")
# set the include path for the app
target_include_directories(TestMariaDB PRIVATE "${POCO_INCLUDE_DIR}"
PUBLIC "${MYSQL_INCLUDE_DIR}" )
# link the app against POCO
target_link_libraries(TestMariaDB "${POCO_LIBS}" "${CRYPTO_LIBS}" "${CRYPTOPP_LIBS}" )
#target_link_libraries(TestMariaDB "${POCO_LIBS}" )
위 와 같습니다.
에런는
[ 33%] Linking CXX executable TestMariaDB
/usr/bin/ld: warning: libssl.so.1.0.0, needed by /usr/local/lib/libmariadb.so.2, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libcrypto.so.1.0.0, needed by /usr/local/lib/libmariadb.so.2, not found (try using -rpath or -rpath-link)
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_new@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_clear@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_get_cert_store@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CONF_modules_free@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_use_certificate_file@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CRYPTO_num_locks@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_free@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `ERR_get_error@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CRYPTO_set_locking_callback@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `TLSv1_client_method@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_new@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_load_error_strings@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `ASN1_STRING_data@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `OPENSSL_config@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_get_current_cipher@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_get_error@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_NAME_get_entry@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_write@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_STORE_load_locations@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_get_session@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_get_ex_data@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `EVP_cleanup@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_verify_cert_error_string@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_free@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_load_verify_locations@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `ASN1_STRING_length@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_use_PrivateKey_file@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CIPHER_get_name@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `ERR_free_strings@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_free@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `ERR_remove_state@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_set_ex_data@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CRYPTO_THREADID_set_numeric@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `EVP_sha1@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_set_fd@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CRYPTO_cleanup_all_ex_data@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_read@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_check_private_key@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `ERR_remove_thread_state@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `ERR_reason_error_string@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_connect@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_NAME_get_index_by_NID@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_set_quiet_shutdown@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_set_default_verify_paths@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_STORE_set_flags@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CRYPTO_THREADID_set_callback@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CONF_modules_unload@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `OPENSSL_add_all_algorithms_noconf@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_library_init@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_get_subject_name@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_SESSION_set_timeout@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_CTX_set_cipher_list@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_NAME_ENTRY_get_data@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `EVP_MD_size@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `CRYPTO_set_id_callback@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_get_verify_result@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `X509_digest@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_shutdown@OPENSSL_1.0.0'
/usr/local/lib/libmariadb.so.2: undefined reference to `SSL_get_peer_certificate@OPENSSL_1.0.0'
collect2: error: ld returned 1 exit status
gmake[3]: *** [TestMariaDB] 오류 1
gmake[2]: *** [CMakeFiles/TestMariaDB.dir/all] 오류 2
gmake[1]: *** [CMakeFiles/TestMariaDB.dir/rule] 오류 2
gmake: *** [TestMariaDB] 오류 2
입니다.
어떻게 하면 해결 할 수 있을까요?
혹 잘 아시는분 빠른 해결 해주신다면 소정의 보답을 하겠습니다.
감사합니다.(미리.......
댓글 달기