You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake命令行构建失败但手动执行Makefile正常的问题排查

为老旧LynxOS 2.2.2配置CMake时的构建错误及解决方案疑问

初始配置阶段问题

我正尝试用CMake为老旧版本LynxOS(2.2.2)配置项目,已能生成Makefile,但执行以下CMake命令时出错:

cmake --debug-trycompile -G "Unix Makefiles" -D CMAKE_C_COMPILER=path/to/los/gcc.exe -D CMAKE_TOOLCHAIN_FILE=path/to/toolchain/los_tc.cmake .

报错信息:

Run Build Command(s):C:/Program Files/CMake/bin/cmake.exe -E env VERBOSE=1  -f Makefile cmTC_2e53c/fast && The parameter is incorrect

但手动导航到./CMakeFiles/CMakeScratch/TryCompile-cwzvwo目录执行make -f Makefile all时,Makefile可正常构建无报错。

我的工具链文件(Windows环境,路径已简化,实际路径正确)内容如下:

set(CMAKE_SYSTEM_NAME los222)
set(CMAKE_SYSTEM_PROCESSOR ppc)
set(CMAKE_CROSSCOMPILING 1)

set(CMAKE_C_COMPILER /path/to/gcc.exe)
set(CMAKE_FIND_ROOT_PATH /path/to/cdk/win32-xcoff-ppc;/path/to/cdk/win32-xcoff-ppc/usr/bin)

set(CMAKE_MAKE_PROGRAM /path/to/make.exe)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)

临时解决后的新构建问题

我通过在工具链文件中添加以下配置,暂时完成了Makefile生成:

set(CMAKE_C_COMPILER_FORCED 1) set(CMAKE_CXX_COMPILER_FORCED 1)

虽然生成的Makefile看似正确,但不确定这种方式是否合理。

现在执行cmake --build .时出现类似错误:

The parameter is incorrect
CMake Error: Generator: execution of make failed. Make command was:  -f Makefile &&

手动执行Makefile时,出现报错:

gcc: cannot specify -o with -c or -S and multiple compilations

追踪到问题出在build.make文件的这段代码:

CMakeFiles/fdm.dir/main.c.obj: CMakeFiles/fdm.dir/compiler_depend.ts
    @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=C:/project_files/_CMAKE/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/fdm.dir/main.c.obj"
    C:/RW_APPS/LW/2.2.2/ppc_dev/cdk/win32-xcoff-ppc/usr/bin/gcc.exe $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/fdm.dir/main.c.obj -MF CMakeFiles/fdm.dir/main.c.obj.d -o CMakeFiles/fdm.dir/main.c.obj -c C:/project_files/_CMAKE/main.c

移除-MF CMakeFiles/fdm.dir/main.c.obj.d部分后可正常构建,请问能否通过CMake配置控制这部分内容的生成?


内容的提问来源于stack exchange,提问作者Big Guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:34:57