小编rzj*_*nzk的帖子

如何使用 cmake 从面向 Windows 的 Linux 进行交叉编译?

我目前正在尝试在 Windows Ubuntu 的 Linux 子系统中使用 cmake 进行针对 Windows 的交叉编译。我正在从 Linux 进行编译,因为我希望能够支持多个平台。

我不确定如何使其工作,并且对编译器没有偏好。

请参阅以下代码并构建我当前尝试的输出。

CMakeLists.txt file

cmake_minimum_required(VERSION 3.7)

set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/win.toolchain.cmake)

project(environment.exe)

find_package(SDL2 REQUIRED)
include_directories(environment.exe ${SDL2_INCLUDE_DIRS})

# get executable src files
file(GLOB_RECURSE environment.exe_src ${CMAKE_CURRENT_SOURCE_DIR}/src/environment/*.cpp)

# add environment.exe executable
add_executable(environment.exe ${environment.exe_src})
target_link_libraries(environment.exe ${SDL2_LIBRARIES})

# set output dir
set_target_properties(
    environment.exe
    PROPERTIES
    # ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/suite/lib"
    # LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/suite/lib"
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/environment"
)
Run Code Online (Sandbox Code Playgroud)

win.toolchain.cmake file

set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR x64)#i686

set(triple x64-pc-win32)

set(CMAKE_C_COMPILER clang)
set(CMAKE_C_COMPILER_TARGET ${triple})
set(CMAKE_CXX_COMPILER clang++)
set(CMAKE_CXX_COMPILER_TARGET ${triple})
Run Code Online (Sandbox Code Playgroud)

BASH output

a@DESKTOP-DCHFQSJ:/mnt/e/d/User/Software Projects/windows-software-environment$ ./build.sh
Checking for …
Run Code Online (Sandbox Code Playgroud)

c++ cmake clang cross-compiling clang++

6
推荐指数
0
解决办法
3534
查看次数

如何从当前 PowerShell 工作目录的 PowerShell 进入 Windows-Subsystem-for-Linux (ubuntu)

运行命令bashubuntu在 PowerShell 中时,会输入 Windows-Subsystem-for-Linux,但是,PowerShell 的当前工作目录不会传递到 BASH。有没有办法实现这个功能?

bash powershell ubuntu windows-subsystem-for-linux

3
推荐指数
1
解决办法
1万
查看次数