mariadb-connector-c-2.3.3-linux-i686 라이브러 추가 후 링크 오류 (해결방안??)
안녕하세요?
현재 라이브러리를 추가후 다음과 같은 오류가 납니다.
빌드시 링크오류
os : centos7 64bit
/home/parallels/Desktop/Application/CLion/clion-2017.1.1/bin/cmake/bin/cmake --build /home/parallels/Desktop/Projects/Knob.Tools/Test/TestMariaDB/cmake-build-debug --target TestMariaDB -- -j 2
[ 33%] Linking CXX executable TestMariaDB
/usr/bin/ld: /home/parallels/Desktop/Projects/Libs/mariadb-connector-c-2.3.3-linux-i686/lib/mariadb/libmariadbclient.a(client_plugin.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
/usr/lib64/libdl.so.2: error adding symbols: DSO missing from command line
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
개발 툴은 : CLion
CMakeLists.txt
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")
#mariadb lib
set(USER_LIB_BASE_DIR "/home/parallels/Desktop/Projects/Libs")
set(MARIADB_DIR "${USER_LIB_BASE_DIR}/mariadb-connector-c-2.3.3-linux-i686")
set(MARIADB_INCLUDE_DIR "${MARIADB_DIR}/include")
set(MARIADB_LIB_DIR "${MARIADB_DIR}/lib")
set(MARIADB_LIBS
"${MARIADB_LIB_DIR}/mariadb/libmariadbclient.a"
)
# 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}" "${MARIADB_LIBS}" "${CRYPTOPP_LIBS}" )
#target_link_libraries(TestMariaDB "${POCO_LIBS}" )
입니다.
아시는 특히 빠른 해결 방안을 알려주시면 소정의 보답을 하겠습니다.
이상입니다.
http://database.sarang.net 에
http://database.sarang.net 에 물어보시면 어떨까요?
소정의 보답이 뭘까 궁금하네요. 힌트 준 사람에겐 없나요?
세벌 https://sebuls.blogspot.kr/
음
64bit 환경에서 CLion 이 32bit mariadb 라이브러리를 사용하는게 맞는 시나리오인가요? 뭐 그렇다고치면 mariadb에 libmariadbclient.a 말고 동적 library를 사용해보시죠. dlclose 에러 관련해서 어디선가 dynamic 한 링크를 사용하면 된다는 것을 본 것 같기도 합니다.
소곤소곤
같은 오류......
.so 파일을 링크해봤지만 같은 오류가 납니다.
음
mariadb library는 직접 컴파일 하신건가요? 아니라면 동일한 서버에서 컴파일해서 사용해보시는게 어떨까요?
소곤소곤
지금 ...... 개발 작업중입니다.
현재....... 서버가 어디에 있던 상관없습니다.
어차피 전 클라이언트로 작업중에 있으니까요?
빌드가 되어야 실행하고 테스트후 개발하려고 하는것입니다.
댓글 달기