C++ 向CMakeList添加第三方库
我正在尝试在arduino和运行Ubuntu14.04的计算机之间建立串行连接 我正在使用这个图书馆 有几个依赖项,我希望避免这些依赖项,因为我对此非常陌生,希望尽可能保持基本。显然,我不是唯一一个,项目负责人已经回答了这个问题 我在serial/examples/serial_example.cc中提供的示例中使用了CMakeLists.txt(由于限制,无法发布直接链接,但它是github) 这些是我采取的步骤C++ 向CMakeList添加第三方库,c++,cmake,C++,Cmake,我正在尝试在arduino和运行Ubuntu14.04的计算机之间建立串行连接 我正在使用这个图书馆 有几个依赖项,我希望避免这些依赖项,因为我对此非常陌生,希望尽可能保持基本。显然,我不是唯一一个,项目负责人已经回答了这个问题 我在serial/examples/serial_example.cc中提供的示例中使用了CMakeLists.txt(由于限制,无法发布直接链接,但它是github) 这些是我采取的步骤 将上面的CMakeList.txt文件放入/serial/library,替
enumerate_port()中:
my_program.cpp:(.text+0x32):对
serial::list_ports()的未定义引用
collect2:错误:ld返回了1个退出状态
生成[2]:*[my_程序]错误1
make::[CMakeFiles/my_program.dir/all]错误2
make:**[全部]错误2经过一些搜索,我似乎遇到了类似的问题,如中所述,并使用Code::Blocks手动链接到已编译的libserial.so,在另一个目录中似乎可以工作,但是我想知道如何在没有Code::Blocks的情况下实现这一点,因为我需要将我的代码与另一个cmake项目合并为什么您认为使用
sudo
可以解决问题?如果您将CMakeLists.txt
与原始文件进行比较,就会发现您没有编译包含缺少函数的list\u ports\u.cc
。您是对的,Leiaz,这就是问题所在。显然,cpp示例是在cmake示例发布一年后发布的。我只是认为我在编译的时候做错了什么
total 188
-rw-rw-r-- 1 dundua dundua 12080 maj 24 13:49 CMakeCache.txt
drwxrwxr-x 7 dundua dundua 4096 maj 24 13:51 CMakeFiles
-rw-rw-r-- 1 dundua dundua 1630 maj 24 13:49 cmake_install.cmake
-rw-rw-r-- 1 dundua dundua 162888 maj 24 13:49 libserial.a
-rw-rw-r-- 1 dundua dundua 6837 maj 24 13:49 Makefile