CLion:未定义的"_get_driver_instance"
CLion: undefined "_get_driver_instance"
IDE:CLion
系统:OS X
错误消息:
Scanning dependencies of target librarySystem
[ 66%] Building CXX object CMakeFiles/librarySystem.dir/sqlConnection.cpp.o
[ 66%] Building CXX object CMakeFiles/librarySystem.dir/main.cpp.o
[100%] Linking CXX executable librarySystem
Undefined symbols for architecture x86_64:
"_get_driver_instance", referenced from:
sqlConnection::sqlConnection() in sqlConnection.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [librarySystem] Error 1
make[1]: *** [CMakeFiles/librarySystem.dir/all] Error 2
make: *** [all] Error 2
我编写了一个名为sqlConnection的类来连接mysql。
sqlConection.h
#include "sqlConnection.h"
sqlConnection::sqlConnection() {
driver = get_driver_instance();
con = driver->connect("567aaffa1a70e.sh.cdb.myqcloud.com:xxxx", "xxxx", "xxxx");
con->setSchema("librarySys");
stmt = con->createStatement();
}
bool sqlConnection::ifConnected() {
bool isConnected = false;
if(!con->isClosed()){
std::cout << "Succeed to connect mysql";
isConnected = true;
}else{
std::cout << "fail to connect mysql";
}
return isConnected;
}
sqlConnection::~sqlConnection() {
delete stmt;
delete con;
}
main.cpp中的测试main.cpp
#include <iostream>
#include "sqlConnection.h"
using namespace std;
int main() {
sqlConnection *sqlC = new sqlConnection();
sqlC->ifConnected();
return 0;
}
cmakeList:
cmake_minimum_required(VERSION 3.3)
project(librarySystem)
INCLUDE_DIRECTORIES(sqlFiles/include)
INCLUDE_DIRECTORIES(sqlFiles/lib)
INCLUDE_DIRECTORIES(sqlFiles/include/cppconn)
INCLUDE_DIRECTORIES(/usr/local/lib/libmysqlcppconn.so)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++0x")
set(SOURCE_FILES main.cpp sqlConnection.cpp sqlConnection.h)
add_executable(librarySystem ${SOURCE_FILES})
我使用mysql连接器cpp来连接mysql。但问题来了。我在网上尝试过这个解决方案,但没有成功。
遇到同样的错误,我得到了一个处理此CMakeLists.txt
内容的小示例。也许它对你有帮助,即使它的版本不同。
cmake_minimum_required(VERSION 3.5)
project(TestCPP)
#For mysql connector include..
INCLUDE_DIRECTORIES(/mypath/mysql-connector-c++-1.1.7-osx10.10-x86-64bit/include/)
#For Boost..
INCLUDE_DIRECTORIES(/opt/local/include/)
#For imported linking..
add_library(libmysqlcppconn STATIC IMPORTED)
set_property(TARGET libmysqlcppconn PROPERTY IMPORTED_LOCATION /mypath/mysql-connector-c++-1.1.7-osx10.10-x86-64bit/lib/libmysqlcppconn-static.a)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(TestCPP ${SOURCE_FILES})
target_link_libraries (TestCPP libmysqlcppconn)
相关文章:
- C++ Singleton - Prevent ::instance() to variable
- DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
- 我可以将QCoreApplication::instance()用于孤儿QObjects吗?
- ATL OLE DB Consumer Templates 与 Microsoft OLE DB Driver for
- "terminate called after throwing an instance of std::invalid_argument' what(): stoi ?"
- cin.get() 导致"no instance of overloaded function"错误
- 方括号在"map <string, int> instance[numberFeatures];"中是什么意思
- 尝试在虚幻引擎中通过C++添加视口时出错"No instance of overloaded function CreateWidget"
- 3D 矢量 - "No instance of overload function?"
- 不能使用矢量::插入"no instance of overloaded function..."
- 矩阵类:"No instance of overloaded function push_back matches the argument list"
- 如何修复矢量push_back中的"no instance of overloaded function"?
- 从我的driver.cpp调用派生类
- 如何使用 mongo-cxx-driver 的 **insert** 函数将包含静态数据的多维数组插入到数据库中
- 内存泄漏与mongocxx::instance inst{};.
- cuda错误Cudart卸载(错误29)由于"driver shutting down"
- "No instance of overload function"
- 如何使用Mongo-CXX-Driver设置Visual Studio项目设置
- 为什么我的交易没有回滚?Qt Mysql odbc driver.
- 调用AAssetManager_fromJava时崩溃:"JNI WARNING: instance fieldID 0x571819bc not valid"