C++ 将这些编译器选项转换为CMakeLists.txt
我正在尝试使用内联编译选项创建一个CMakeLists.txt-C++ 将这些编译器选项转换为CMakeLists.txt,c++,compilation,linker,cmake,C++,Compilation,Linker,Cmake,我正在尝试使用内联编译选项创建一个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 REQUIRE
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
中,我得到了上述库内容的未定义引用错误。我是否误解了包括_目录
和/或链接_目录
My tester.cpp包括以下内容
#include <stdlib.h>
#include <iostream>
#include <mysql_connection.h>
#include <driver.h>
#include <exception.h>
#include <resultset.h>
#include <statement.h>
#包括
#包括
#包括
#包括
#包括
#包括
#包括
如果您实际上没有指定要链接到任何地方的库,请参阅文档(只需要一个目录列表)。你会想调查的。您可能还需要研究和寻找使用CMake处理第三方库的首选方法(尽管您不一定需要)。您还需要实际链接库,link\u directories()
仅指定多个目录。
您需要添加
target_link_libraries(testapp mysqlcppconn)
在之后添加可执行文件()
另外,您应该能够完全跳过
链接\u目录()
,/usr/lib
默认情况下通常位于库搜索路径中。谢谢,这样更有意义now@rocketas另外添加了一个关于查找模块的链接,可能也会有所帮助。