在我进行交叉编译可执行文件时,CMake会自动添加链接选项

编程语言 2026-07-10

我在Windows上用CMake进行跨平台编译可执行文件。但它会自动添加默认的链接选项和库。如何移除这些?

这就是CMake会添加的内容。

-fuse-ld=lld-link -Xlinker /MANIFEST:EMBED -Xlinker /implib:app.lib -Xlinker /pdb:app.pdb -Xlinker /version:0.0   -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -loldnames

这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 3.12.0)
project(app VERSION 0.1.0)

enable_language(CXX C ASM)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_STANDARD 99)

# cross compile
include(${CMAKE_SOURCE_DIR}/cross_compile.cmake)

add_executable(app crt0.S main.c)

解决方案

问题已解决。

cmake_minimum_required(VERSION 3.12.0)
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_SOURCE_DIR}/cross_compile.cmake")

project(app VERSION 0.1.0)

enable_language(CXX C ASM)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_C_STANDARD 99)


add_executable(app crt0.S main.c)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章