我试图用内联编译选项创建一个CMakeLists.txt-
g++ -Wall -I/usr/include/cppconn -o testapp tester.cpp -L/usr/lib -lmysqlcppconn
我期望以下工作
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
set(CMAKE_C_FLAGS "-Wall")
project(testapp)
find_package(PCL 1.4 REQUIRED)
include_directories(. "/usr/include/cppconn")
link_directories("/usr/lib/" "mysqlcppconn")
add_executable(testapp tester.cpp)
但是在make中我得到了上面库内容的未定义引用错误.我误解了include_directories和/或link_directories吗?
我的tester.cpp包括这个
#include <stdlib.h>
#include <iostream>
#include <mysql_connection.h>
#include <driver.h>
#include <exception.h>
#include <resultset.h>
#include <statement.h>
解决方法:
您还需要实际链接库,link_directories()仅指定多个目录.
你需要添加
target_link_libraries(testapp mysqlcppconn)
在add_executable()之后
你也应该能够完全跳过link_directories()/usr/lib默认情况下通常在库搜索路径中.