0

尝试为我的树莓派 pico 编译简单的 C 代码时遇到问题。我正在使用 VSCode(这在 PS 中也可以重现)。据我所知,我已经正确设置了所有内容。

我只在 PS 中尝试过这样做,它给了我完全相同的结果。

CMakeLists.txt

cmake_minimum_required(VERSION 3.19)

include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake)

project(blink C CXX ASM)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

pico_sdk_init()

add_executable(${PROJECT_NAME}
    main.c
)

pico_add_extra_outputs(${PROJECT_NAME})

target_link_libraries(${PROJECT_NAME}
    pico_stdlib
)

主程序

#include <pico/stdlib.h>

int main()
{
    const uint led_pin = 25;

    //init ledpin
    gpio_init(led_pin);
    gpio_set_dir(led_pin, GPIO_OUT);

    while(true)
    {
        //blink led
        gpio_put(led_pin, true);
        sleep_ms(1000);
        gpio_put(led_pin, false);
        sleep_ms(1000);
    }
}

这在使用 nmake 编译时。吐出来,

[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --build c:/pico/Projects/Blink/build --config Release --target blink -j 6 --
[build] Warning: NMake does not support parallel builds. Ignoring parallel build command line option.
[build] makefile(7): Error(E21): Extension(s) (.PHONY) not defined
[build] makefile(10): Error(E21): Extension(s) (.NOTPARALLEL) not defined
[build] makefile(12): Error(E09): Ignoring out of place Extension
[build] makefile(14): Error(E21): Extension(s) (.PHONY) not defined
[build] makefile(28): Warning(W18): Unrecognized or out of place character '='
[build] makefile(31): Error(E09): Ignoring out of place Single-colon
[build] makefile(36): Error(E21): Extension(s) (.PHONY) not defined
...
[build] Error(E02): Make execution terminated
[build] Build finished with exit code 0

在如何解决这个确切的问题方面,我找不到太多东西,这让我感到惊讶。我发现的唯一一件事是 nmake 不使用“.PHONY”,这就是我的大部分问题的来源。

我是否只删除 Makefile 中的所有“.PHONY”引用?我希望有人可以帮助解决这个非常令人困惑的问题。

谢谢你。

4

1 回答 1

1

我终于解决了这个问题。

我在我的电脑“Open Watcom C/C++”上安装了第 3 方 nmake。

这是在创建一个“WMake Makefiles”,它显然不是一个“NMake Makefiles”。

如果您遇到此问题,请更仔细地阅读您的 NMake 输出。

于 2021-10-24T18:08:43.150 回答