2017-01-11 1 views
0

CMake 문제에 대한 해결책을 찾을 수없는 것 같습니다.CMake와 C++로 mysql-connector를 실행 하시겠습니까?

내가 MySQL의 커넥터-C를 사용하려면 ++ 및 CURL, 내 /Desktop/example 디렉토리에 나는 다음과 CMakeLists.txt을했습니다 :

cmake_minimum_required (VERSION 3.1.0) 
PROJECT (main) 
ADD_EXECUTABLE (main main.cpp) 
target_link_libraries(main curl mysql-connector-c++) 
target_compile_features(main PRIVATE cxx_range_for) 

I했습니다 내 MAIN.CPP에서 다음 헤더를 포함 :

#include <curl/curl.h> 

#include <mysql_connection.h> 
#include <driver.h> 
#include <exception.h> 
#include <resultset.h> 
#include <statement.h> 

내가 다운로드 한 zip file에 대한 MySQL의 커넥터 - C++, 압축을 푼 나의 현재 디렉토리에이 위치는.

그때 cmake .make 다음과 같은 오류가 생성됩니다 실행했습니다

fatal error: 
    'mysql_connection.h' file not found 

내가 MySQL의 커넥터 헤더를 제거 할 때이 같은 기괴한, CURL이 잘 작동합니다.

이것이 작동하지 않는 이유는 무엇입니까?

N.B 다음 명령은 명시된 결과 실행

g++ -std=c++14 -lcurl main.cpp //Success 
g++ -std=c++14 -lcurl -lmysqlcppconn main.cpp //Fatal eror: 'mysql_connection.h' file not found 
+0

압축 해제 된 아카이브를'Desktop/example' 안에 넣었습니까? – fedepad

+0

@fedepad는 압축을 푼'mysql-connector-C++'대신에 사용해야합니까? –

+0

필요 없다. 나는 당신이 시도 할 수있는 답변을 쓰고있다 ... – fedepad

답변

1

내가 CMake는 "포함"또는 "라이브러리"디렉토리로 헤더와 라이브러리를 포함하는 디렉토리에 대해 알고하지 않습니다 믿습니다.

cmake_minimum_required (VERSION 3.1.0) 
project(main) 
set(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR your_path_to_mysql_connectorcpp) 
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include) 
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include/cppconn) 
link_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib) 
add_executable(main main.cpp) 
target_link_libraries(main curl mysqlcppconn) 
target_compile_features(main PRIVATE cxx_range_for) 

몇 가지 참고 사항 :

1) 만약 당신이 시도 할 수 있습니다 하나의 해결책은 그래서 당신의 CMakeLists.txt이 같아야 전화

ADD_EXECUTABLE (main main.cpp) 

전에 포함 링크 디렉토리를 지정하는 것입니다 당신은 당신의 근원에서 driver.h를 부를고 그 후에 당신은의 위 CMakeLists.txt 를 사용해야합니다; 당신이 아래의 CMakeLists.txt 를 다음 사용해야합니다 당신의 소스에서 cppconn/driver.h를 호출 할 경우

2) : 더 복잡 얻을 것이다

cmake_minimum_required (VERSION 3.1.0) 
project(main) 
set(FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR your_path_to_mysql_connectorcpp) 
include_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/include) 
link_directories(${FULL_PATH_TO_MYSQL_CONNECTOR_CPP_DIR}/lib) 
add_executable(main main.cpp) 
target_link_libraries(main curl mysqlcppconn) 
target_compile_features(main PRIVATE cxx_range_for) 

당신의 CMake, 당신은 또한 디렉토리와 라이브러리를 포함 정의 할 수 있습니다 목표에 따라 달라 지지만, 지금 가지고있는 것들에 대해서는 위의 내용이 좋을 것입니다.

+0

이제'ld : -lmysql-connector-C++에 대해 라이브러리를 찾을 수 없음 ' –

+1

라이브러리 이름이 맞습니까? 내가 다운로드 한 것처럼'libmysqlcppconn.dylib'라는 이름이 붙어 있으므로 대신'mysqlcppconn'을'target_link_libraries()'에 넣으십시오. 나는 대답을 업데이트한다. – fedepad

+0

고마워요! –

관련 문제