【添加】Windows平台配置及CMake调整

This commit is contained in:
wdp
2025-01-18 19:46:56 +08:00
parent 86f98db430
commit 8de1dfb3aa
4 changed files with 53 additions and 17 deletions

19
.vscode/c_cpp_properties.json vendored Normal file
View File

@@ -0,0 +1,19 @@
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/3rd/**",
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "C:\\MinGW\\bin\\gcc.exe",
"intelliSenseMode": "windows-gcc-x86"
}
],
"version": 4
}

10
.vscode/tasks.json vendored
View File

@@ -11,7 +11,9 @@
"-build_type",
"Release",
"-build_and_run",
"false"
"false",
"-platform",
"win"
],
"group": {
"kind": "build",
@@ -28,11 +30,13 @@
"command": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"args": [
"-File",
"${workspaceFolder}\\build.ps1",
"${workspaceFolder}\\build-win-app.ps1",
"-build_type",
"Debug",
"-build_and_run",
"true"
"true",
"-platform",
"win"
],
"group": {
"kind": "build",

View File

@@ -3,14 +3,19 @@ project(Demo)
set(CMAKE_CXX_STANDARD 11)
if(WIN32)
set(CMAKE_CXX_COMPILER "MSVC")
elseif(UNIX)
set(CMAKE_CXX_COMPILER "g++")
endif()
# 指定库链接目录
link_directories(3rd/lib)
# 根据 platform 值设置 CMake 变量
if(${CMAKE_BUILD_PLATFORM} STREQUAL "win")
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rd/win/opencv/x64/vc15/lib)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rd/win/opencv/include)
else()
message(FATAL_ERROR "不支持的平台: ${CMAKE_BUILD_PLATFORM}")
endif()
include_directories(3rd/include)
include_directories(src)
aux_source_directory(./src DIR_SRCS)
@@ -19,8 +24,8 @@ aux_source_directory(./app DIR_SRCS)
add_executable(Demo ${DIR_SRCS})
# if(CMAKE_BUILD_TYPE STREQUAL "Debug")
# target_link_libraries(${PROJECT_NAME} spdlogd-mt-x64.lib)
# else()
# target_link_libraries(${PROJECT_NAME} spdlog-mt-x64)
# endif()
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
target_link_libraries(${PROJECT_NAME} opencv_world430d)
else()
target_link_libraries(${PROJECT_NAME} opencv_world430)
endif()

View File

@@ -3,7 +3,10 @@ param(
[string]$build_type,
[Parameter(Mandatory=$true)]
[string]$build_and_run
[string]$build_and_run,
[Parameter(Mandatory=$true)]
[string]$platform
)
# 定义项目和构建目录的变量
@@ -20,11 +23,17 @@ if (-Not (Test-Path -Path $buildDir)) {
Set-Location -Path $buildDir
# 运行CMake生成构建系统
# 这里假设CMakeLists.txt在项目根目录下
cmake -G "Visual Studio 17 2022" -T host=x64 -DCMAKE_BUILD_TYPE=$build_type ..
cmake -G "Visual Studio 17 2022" -T host=x64 -DCMAKE_BUILD_TYPE="$build_type" -DCMAKE_BUILD_PLATFORM="$platform" ..
# 编译项目
cmake --build . --config $build_type
# 检查编译命令的退出代码
if ($LASTEXITCODE -ne 0) {
Write-Host "CMake build failed with exit code $LASTEXITCODE. Exiting script." -ForegroundColor Red
exit $LASTEXITCODE
}
# 返回项目目录
Set-Location -Path $projectDir
@@ -33,7 +42,6 @@ Write-Host "build done." -ForegroundColor Darkgreen
if($build_and_run -eq "true"){
Write-Host "################## APP Run ##################" -ForegroundColor Blue
Start-Process -FilePath "build\\${build_type}\\TestCode.exe"
# & "build\\$build_type\\TestCode.exe"
$env:PATH += ";3rd\win\opencv\x64\vc15\bin"
Start-Process -FilePath "build\\${build_type}\\Demo.exe"
}