0
我得到一个一般性错误,当我尝试运行柳絮编译:CUDA ROS CMake的NVCC致命
CMake Error at robot_cuda_lib_generated_matrix.cu.o.cmake:206 (message):
Error generating
/.../catkin_ws/build/robot/CMakeFiles/robot_cuda_lib.dir/src/./robot_cuda_lib_generated_matrix.cu.o
,或者如果我尝试建立的文件夹本身:
nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
我知道矩阵.cu文件起作用。我将它从他们制作的CUDA教程中拉出来,如果我把它放在另一个项目中,它工作得很好。我的主要理论是与我的其他软件包有某种冲突。或者也许我的CMakeLists.txt在某个地方是错的。我已经尝试了很多更改和修复。这是当前版本:
cmake_minimum_required(VERSION 2.8.11)
project(robot)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
pcl_ros
)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}")
find_package(OpenCV REQUIRED)
find_package(efusion REQUIRED)
find_package(Qt4 REQUIRED)
find_package(Qwt REQUIRED)
find_package(VTK 7 REQUIRED)
find_package(CUDA REQUIRED)
include(${QT_USE_FILE})
include(${VTK_USE_FILE})
include(FindCUDA)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES robot
# CATKIN_DEPENDS roscpp rospy std_msgs
# DEPENDS system_lib
)
include_directories(
include
include/gplvm
${catkin_INCLUDE_DIRS}
${EFUSION_INCLUDE_DIR}
${EIGEN_INCLUDE_DIRS}
# include this for ui_h
${CMAKE_CURRENT_BINARY_DIR}
${QWT_INCLUDE_DIR}
#/usr/local/cuda/include
)
qt4_wrap_cpp(MOC_SRCS
include/gplvm_plot.hpp
include/parameter_handler.hpp
include/robot.hpp
)
qt4_wrap_ui(UI_HDRS
ui/parameter_handler.ui
ui/robot.ui
)
file(GLOB robot_cuda "src/*.cu")
file(GLOB robot_srcs "src/*.cpp" "src/kernel/*.cpp" "src/*.cu")
file(GLOB robot_hdrs "include/*.h" "include/*.hpp" "include/kernel/*.h" "include/kernel/*.hpp")
cuda_add_library(robot_cuda_lib ${robot_cuda} ${robot_hdrs})
cuda_add_executable(robot_node ${robot_srcs} ${robot_hdrs} ${MOC_SRCS} ${UI_HDRS})
target_link_libraries(robot_node
${catkin_LIBRARIES}
${OpenCV_LIBS}
${EFUSION_LIBRARY}
${Eigen_LIBRARIES}
${QWT_LIBRARY}
${QT_LIBRARIES}
${VTK_LIBRARIES}
)
是否有可能其中一个包是打破构建?
如果您提供Cmake的详细输出直至产生错误的点,则您更有可能获得帮助。请不要问我该怎么做,网上有很多资料解释如何从Cmake获得详细输出。有了这些信息,其他人就可以更快速地识别Cmake编译命令中的问题,并将其追溯到Cmakelists.txt文件中的特定条目。 –
Cmake不会给出任何错误,make会。我只是认为这是造成制造业的一个问题。当我做了详细的制作时,我意识到它试图向库达图书馆追加大量图书馆,并发现其中的某些内容导致了问题,而且似乎是这样。 – Shadow0144