该软件最终将在嵌入式Linux平台上运行。首先,我们编写了一个库,其中所有C文件都在同一个文件夹中,C++文件在它下面的一个测试文件夹中。
这在Windows 10上工作,使用CMake、Ninja和CLang + doctest作为测试框架。所有这些工具都安装在vcpkg下。
我现在正在尝试在Ubuntu16.04上配置和运行所有的东西。所有的工具和源代码都已从我们的存储库中检索出来。我试图用Qt、cmake和命令行构建库并进行测试,但没有成功。
使用CMake-gui,在浏览到源和目标后,单击“配置”按钮将导致错误。
CMake错误: CMake无法找到与“忍者”相对应的构建程序。CMAKE_MAKE_PROGRAM未设定。
忍者程序位于~/./vcpkg/下载/tools/忍者-1.8.2-linux/文件夹中。
在尝试从命令行构建时,我遇到了不同的错误。
是否有使用受控工具而不是环境中的配置的示例?
编辑:添加
CMakeLists.txt
cmake_minimum_required(VERSION 3.14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
project(PSOC_LIB)
option(BUILD_TESTS "bulid tests project" OFF)
set(psoc_lib_VERSION_MAJOR 0)
set(psoc_lib_VERSION_MINOR 1)
set(psoc_lib_VERSION_PATCH 0)
set(psoc_lib_VERSION "${psoc_lib_VERSION_MAJOR}.${psoc_lib_VERSION_MINOR}.${psoc_lib_VERSION_PATCH}")
set(PROJ_NAME "\"PSOC Library\"") # PROJECT_NAME is a predefined variable
set(PROJECT_DESCRIPTION "\"Crossplatform library for products\"")
configure_file(include/psoc/config.h.in
${CMAKE_BINARY_DIR}/include/psoc/config.h
)
set(SOURCES
# 5 *.c files
)
add_library(PSOC_LIB ${SOURCES})
target_include_directories(PSOC_LIB PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_compile_definitions(PSOC_LIB PRIVATE _CRT_SECURE_NO_WARNINGS=1)
if (BUILD_TESTS)
include(CTest)
enable_testing()
add_subdirectory(test)
endif (BUILD_TESTS)
test/CmakeLists.txt
cmake_minimum_required(VERSION 3.10)
set(TEST_SOURCES
test.cpp
)
find_package(doctest CONFIG REQUIRED)
add_executable(test_runner test_runner.cpp ${TEST_SOURCES})
target_compile_definitions(test_runner PRIVATE _SILENCE_CXX17_ALLOCATOR_VOID_DEPRECATION_WARNING) #silence warnings about allocator<void> deprecation
target_compile_definitions(test_runner PRIVATE _WIN32_WINNT=0x0601) #target windows 7
target_link_libraries(test_runner PSOC_LIB doctest::doctest)
add_test(all_tests test_runner)
在test
下,即使BUILD_TESTS
关闭,也会生成BUILD_TESTS
文件夹中的文件。在Linux下,test
和Testing
文件夹只有在BUILD_TESTS
打开时才会创建。
发布于 2019-10-04 05:41:23
我创建了一个shell脚本来构建一个可执行的测试文件。
#!/bin/bash
# Build a debug version of the PSOC_LIB and related tests
mkdir build
cd build
../../../vcpkg_pml/vcpkg/downloads/tools/cmake-3.14.0-linux/cmake-3.14.0-Linux-x86_64/bin/cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -S ../
ninja
https://stackoverflow.com/questions/58141568
复制