成功使用CMakeLists制作后如何修复"open: No such file or directory"错误(该文件实际上存在)
How to fix "open: No such file or directory" error(The file actually exists) after successfully using CMakeLists to make
>我正在尝试从"https://github.com/barulicm/PiPCA9685"安装电机驱动程序C++驱动程序库
我按照自述指南使用 CMakeList 在"build"文件夹中构建库。由于 python 部分发生了一些错误,我只需要C++部分,所以我删除了 CMakeList 中的 python 部分。
我在Raspberry Pi上安装了Ubuntu-mate,"uname -a"给出了"Linux raspi-desktop 4.15.0-1037-raspi2 #39-Ubuntu SMP PREEMPT 星期三五月15 20:17:07 UTC 2019 armv7l armv7l armv7l GNU/Linux">
由"make"命令生成的文件类型是"ELF 32位LSB共享对象,ARM,EABI5版本1(SYSV),动态链接,解释器/lib,用于GNU/Linux 3.2.0,BuildID[sha1]=63902bc89b28eaccea17c072a287c89020927f4d,未剥离" 当我尝试"./文件名"时,终端显示"打开:没有这样的文件或目录">
以前,我按照相同的过程生成可执行文件(过程是:cmake,make,./文件名)生成的文件是可执行的,其文件类型是"ELF 32位LSB共享对象,ARM,EABI5版本1(GNU/Linux),动态链接,解释器/lib,用于GNU/Linux 3.2.0,BuildID[sha1]=5bfba81687467450b832e6eae79a02978714772b,未剥离">
我发现这两个文件之间的区别不是可执行文件,一个是"EABI5版本1(SYSV)",可执行文件一个是"EABI5版本1(GNU/Linux)">
我用谷歌搜索了差异,不知道这是否是导致"没有这样的文件或目录"的原因
我是C++新手,如果你给我一些建议,对我有很大帮助。谢谢!
修改后的CMakeLists:
cmake_minimum_required(VERSION 3.1)
project(PiPCA9685 VERSION 1.0.0)
set(CMAKE_CXX_STANDARD 14)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/modules")
#
#
find_package(WiringPi REQUIRED)
include_directories(${WiringPi_INCLUDE_DIRS})
include_directories(include)
#
#
add_library(PiPCA9685 src/PCA9685.cpp)
target_link_libraries(PiPCA9685 ${WiringPi_LIBRARIES})
set_property(TARGET PiPCA9685 PROPERTY POSITION_INDEPENDENT_CODE ON)
set_target_properties(PiPCA9685 PROPERTIES VERSION ${PiPCA9685_VERSION} SOVERSION ${PiPCA9685_VERSION})
#
#
set(INSTALL_INCLUDE_DIR "include")
set(INSTALL_LIBS_DIR "lib")
set(INSTALL_STATIC_DIR "lib/static")
set(INSTALL_RUNTIME_DIR "bin")
set(INSTALL_CONFIG_DIR "${INSTALL_LIBS_DIR}/PiPCA9685/cmake")
include(CMakePackageConfigHelpers)
configure_package_config_file(
cmake/PiPCA9685Config.cmake.in
PiPCA9685Config.cmake
INSTALL_DESTINATION lib/cmake/PiPCA9685
PATH_VARS INSTALL_INCLUDE_DIR
)
install(
TARGETS PiPCA9685
EXPORT PiPCA9685Targets
RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR}
LIBRARY DESTINATION ${INSTALL_LIBS_DIR}
ARCHIVE DESTINATION ${INSTALL_STATIC_DIR}
)
install(
DIRECTORY include/PiPCA9685
DESTINATION ${INSTALL_INCLUDE_DIR}
)
install(
EXPORT PiPCA9685Targets
FILE PiPCA9685Targets.cmake
DESTINATION ${INSTALL_CONFIG_DIR}
)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/PiPCA9685Config.cmake"
DESTINATION ${INSTALL_CONFIG_DIR}
)
感谢您对PiPCA9685的关注!欢迎来到C++!
错误消息"打开:没有这样的文件或目录"实际上是来自库的消息,因此您的程序正在运行。(我没有在这个项目中放置更清晰的错误消息)。
真正的问题是库正在尝试打开 linux 设备路径"/dev/i2c-1",以便它可以通过 I2C 与PCA9685驱动程序通信。
我没有亲自在Pi上的Ubuntu-Mate中使用过I2C,但是经过一些快速搜索,看起来默认情况下没有启用I2c的Ubuntu-Mate安装。希望类似这篇文章中的答案可以帮助您启用 I2C,以便存在"/dev/i2c-1"路径。 https://raspberrypi.stackexchange.com/questions/61905/enable-i2c-on-ubuntu-mate-raspberry-pi-3
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- "Cannot find -l<directory>"错误 - CMake
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"
- C++编译期间出现"No such file or directory"错误
- 代码块中的哈希库++库"No such file or directory"错误
- CMake 错误: "add_subdirectory not given a binary directory"
- 成功使用CMakeLists制作后如何修复"open: No such file or directory"错误(该文件实际上存在)
- GDB 列表错误"No such file or directory"
- QT创建者错误地处理标头文件包含来自Directory
- 合成 cpp :致命错误"QApplication: no such file or directory"
- 将头文件添加到 LPCXPsPresso 时出现'app_usbd_cfg.h: No such file or directory'错误
- Cocos2dx 安卓构建错误:"arm-linux-androideabi-g++: No such file or directory"
- 编译错误:"g++: error trying to exec 'cc1plus': execvp: No such file or directory"
- 致命错误:SFML/Graphics.hpp: no such file or directory exists
- 从Windows交叉编译的GNU ARM(BeagleBoneBlack)。*.elf 上的运行时错误:"No such file or directory"
- QtCreator 返回错误"Cannot change to working directory"
- CppCMS 教程:静态链接模板错误:"fatal error: content.h: No such file or directory"
- 在 R 编译中使用C++错误:"RcppArmadillo.h: No such file or directory"
- 奥威尔开发C++致命错误:"iostream: no such file or directory"
- 代码精简版生成错误'No such file or directory'