解决办法,eclipse cdt build project 报cmake not found

解决办法分以下三部分:

  1. 点击eclipse偏好设置(以Mac操作系统为例),搜索enviroment按照下图定义进行配置
  2. 点击,Project->c/c++index->rebuild 即可解决。

 

PowerShell 7 环境已加载 (版本: 7.5.2) PowerShell 7 环境已加载 (版本: 7.5.2) PS C:\Users\Administrator\Desktop> <# >> Libuv 完整修复脚本 >> #> PS C:\Users\Administrator\Desktop> PS C:\Users\Administrator\Desktop> $ErrorActionPreference = 'Stop' PS C:\Users\Administrator\Desktop> Set-StrictMode -Version 3 PS C:\Users\Administrator\Desktop> PS C:\Users\Administrator\Desktop> try { >> $workingDir = "E:\PyTorch_Build\pytorch" >> $libuvBase = Join-Path $workingDir "third_party\libuv" >> $libDestDir = Join-Path $libuvBase "lib" >> >> # 1. 确保lib目录存在 >> New-Item -Path $libDestDir -ItemType Directory -Force -ErrorAction Stop | Out-Null >> >> # 2. 检查是否已有库文件 >> $existingLibs = Get-ChildItem -Path $libDestDir -Filter "uv*.lib" -File >> if ($existingLibs) { >> Write-Host "✅ 已找到库文件: $($existingLibs.FullName -join ', ')" -ForegroundColor Green >> $actualLibFile = $existingLibs[0].Name >> } >> else { >> Write-Host "未找到库文件,尝试从官方源下载..." -ForegroundColor Yellow >> >> # 3. 使用正确的下载URL >> $version = "1.51.0" >> $downloadUrl = "https://github.com/libuv/libuv/archive/refs/tags/v$version.zip" >> $tempZip = Join-Path $env:TEMP "libuv_source_$version.zip" >> >> # 下载源代码 >> Write-Host "正在下载Libuv源代码 (v$version)..." -ForegroundColor Cyan >> Invoke-WebRequest -Uri $downloadUrl -OutFile $tempZip -UseBasicParsing >> >> # 创建临时目录并解压 >> $tempExtract = Join-Path $env:TEMP "libuv_extract_$(Get-date -Format 'yyyyMMddHHmmss')" >> New-Item -ItemType Directory -Path $tempExtract -Force | Out-Null >> Expand-Archive -Path $tempZip -DestinationPath $tempExtract -Force >> >> # 查找并复制库文件(尝试构建目录) >> $buildDir = Join-Path $tempExtract "libuv-$version\out\build\x64-Release" >> $libFiles = Get-ChildItem -Path $buildDir -Recurse -Filter "uv*.lib" | >> Select-Object -First 1 >> >> if (-not $libFiles) { >> # 如果构建目录不存在,尝试手动构建 >> Write-Host "编译目录未找到,尝试构建Libuv..." -ForegroundColor Yellow >> $sourceDir = Join-Path $tempExtract "libuv-$version" >> $buildPath = Join-Path $sourceDir "build" >> New-Item -Path $buildPath -ItemType Directory -Force | Out-Null >> Set-Location $buildPath >> >> # 运行CMake生成构建文件 >> cmake .. -G "Visual Studio 17 2022" -A x64 >> cmake --build . --config Release >> >> $libFiles = Get-ChildItem -Path "$buildPath\Release" -Filter "uv*.lib" | >> Select-Object -First 1 >> } >> >> if ($libFiles) { >> Copy-Item -Path $libFiles.FullName -Destination $libDestDir -Force >> $actualLibFile = $libFiles.Name >> Write-Host "✅ 成功复制库文件: $actualLibFile" -ForegroundColor Green >> } >> else { >> throw "无法找到或生成库文件" >> } >> >> # 清理临时文件 >> Remove-Item $tempZip -Force -ErrorAction SilentlyContinue >> Remove-Item $tempExtract -Recurse -Force -ErrorAction SilentlyContinue >> } >> >> # 4. 更新CMake配置文件 >> $cmakeConfigPath = Join-Path $workingDir "cmake\Modules\FindLibuv.cmake" >> >> # 获取相对路径 >> $relativePath = $libuvBase.Replace($workingDir, "").TrimStart('\').Replace('\', '/') >> >> # 创建配置文件内容 >> $libuvConfig = @" >> # Libuv手动配置 >> set(LIBUV_FOUND ON) >> set(LIBUV_INCLUDE_DIRS "\${CMAKE_CURRENT_SOURCE_DIR}/$relativePath/include") >> set(LIBUV_LIBRARIES >> "\${CMAKE_CURRENT_SOURCE_DIR}/$relativePath/lib/$actualLibFile" >> ) >> "@ >> >> # 确保目录存在 >> $cmakeDir = Split-Path $cmakeConfigPath -Parent >> New-Item -Path $cmakeDir -ItemType Directory -Force -ErrorAction SilentlyContinue | Out-Null >> >> Set-Content -Path $cmakeConfigPath -Value $libuvConfig -Encoding UTF8 >> Write-Host "✅ 更新CMake配置文件: $cmakeConfigPath" -ForegroundColor Green >> >> # 5. 最终验证 >> Write-Host "`n验证安装结果:" -ForegroundColor Cyan >> >> # 检查关键文件是否存在 >> $requiredFiles = @( >> Join-Path $libuvBase "include\uv.h", >> Join-Path $libDestDir $actualLibFile, >> $cmakeConfigPath >> ) >> >> $validationResult = $requiredFiles | ForEach-Object { >> if (Test-Path $_) { >> "✅ 存在: $_" >> } >> else { >> "❌ 缺失: $_" >> } >> } >> >> $validationResult | ForEach-Object { Write-Host $_ } >> >> if ($validationResult -contains "❌") { >> throw "部分文件缺失,请检查修复过程" >> } >> else { >> Write-Host "`n✅ Libuv 安装修复完成!" -ForegroundColor Green >> } >> } >> catch { >> Write-Host "`n❌ 修复失败: $_" -ForegroundColor Red >> Write-Host "错误详细信息: $($_.Exception.Message)" -ForegroundColor Yellow >> } ✅ 已找到库文件: E:\PyTorch_Build\pytorch\third_party\libuv\lib\uv.lib ❌ 修复失败: The variable '$CMAKE_CURRENT_SOURCE_DIR' cannot be retrieved because it has not been set. 错误详细信息: The variable '$CMAKE_CURRENT_SOURCE_DIR' cannot be retrieved because it has not been set. PS C:\Users\Administrator\Desktop> "PowerShell 7 环境已加载 (版本: 7.5.2) PowerShell 7 环境已加载 (版本: 7.5.2) PS C:\Users\Administrator\Desktop> # 切换到Libuv目录 PS C:\Users\Administrator\Desktop> Set-Location "E:\PyTorch_Build\pytorch\third_party\libuv" PS E:\PyTorch_Build\pytorch\third_party\libuv> PS E:\PyTorch_Build\pytorch\third_party\libuv> # 创建构建目录 PS E:\PyTorch_Build\pytorch\third_party\libuv> New-Item -Path "build" -ItemType Directory -Force Directory: E:\PyTorch_Build\pytorch\third_party\libuv Mode LastWriteTime Length Name ---- ------------- ------ ---- da--- 2025/9/1 0:27 build PS E:\PyTorch_Build\pytorch\third_party\libuv> Set-Location "build" PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 运行CMake生成构建文件 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> cmake .. -G "Visual Studio 17 2022" -A x64 -- summary of build options: Install prefix: C:/Program Files/libuv Target system: Windows Compiler: C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe (MSVC) CFLAGS: /DWIN32 /D_WINDOWS -- Configuring done (0.1s) -- Generating done (0.2s) -- Build files have been written to: E:/PyTorch_Build/pytorch/third_party/libuv/build PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 构建库文件 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> cmake --build . --config Release 适用于 .NET Framework MSBuild 版本 17.14.19+164abd434 1>Checking Build System Building Custom Rule E:/PyTorch_Build/pytorch/third_party/libuv/CMakeLists.txt uv.vcxproj -> E:\PyTorch_Build\pytorch\third_party\libuv\build\Release\uv.dll Building Custom Rule E:/PyTorch_Build/pytorch/third_party/libuv/CMakeLists.txt uv_a.vcxproj -> E:\PyTorch_Build\pytorch\third_party\libuv\build\Release\libuv.lib Building Custom Rule E:/PyTorch_Build/pytorch/third_party/libuv/CMakeLists.txt uv_run_benchmarks_a.vcxproj -> E:\PyTorch_Build\pytorch\third_party\libuv\build\Release\uv_run_benchmarks_a.exe Building Custom Rule E:/PyTorch_Build/pytorch/third_party/libuv/CMakeLists.txt uv_run_tests.vcxproj -> E:\PyTorch_Build\pytorch\third_party\libuv\build\Release\uv_run_tests.exe Building Custom Rule E:/PyTorch_Build/pytorch/third_party/libuv/CMakeLists.txt uv_run_tests_a.vcxproj -> E:\PyTorch_Build\pytorch\third_party\libuv\build\Release\uv_run_tests_a.exe Building Custom Rule E:/PyTorch_Build/pytorch/third_party/libuv/CMakeLists.txt PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 复制生成的库文件 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> Copy-Item "Release\uv.lib" "..\lib\" -Force PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 更新CMake配置文件 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $cmakeConfigPath = "E:\PyTorch_Build\pytorch\cmake\Modules\FindLibuv.cmake" PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $newContent = @' >> set(LIBUV_FOUND ON) >> set(LIBUV_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libuv/include") >> set(LIBUV_LIBRARIES >> "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libuv/lib/uv.lib" >> ) >> '@ PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> Set-Content -Path $cmakeConfigPath -Value $newContent -Encoding UTF8 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> Write-Host "✅ CMake配置文件已更新" -ForegroundColor Green ✅ CMake配置文件已更新 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 最终验证脚本 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $workingDir = "E:\PyTorch_Build\pytorch" PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $libuvBase = Join-Path $workingDir "third_party\libuv" PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 验证包含文件 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $headerStatus = if (Test-Path "$libuvBase\include\uv.h") {"✅ 存在"} else {"❌ 缺失"} PS E:\PyTorch_Build\pytorch\third_party\libuv\build> Write-Host "uv.h: $headerStatus" -ForegroundColor $(if ($headerStatus -eq "✅ 存在") {"Green"} else {"Red"}) uv.h: ✅ 存在 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 验证库文件 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $libFiles = Get-ChildItem -Path "$libuvBase\lib" -Filter "uv*.lib" -File PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $libStatus = if ($libFiles) {"✅ 找到 $($libFiles.Count) 个库文件"} else {"❌ 缺失库文件"} PropertyNotFoundException: The property 'Count' cannot be found on this object. Verify that the property exists. PS E:\PyTorch_Build\pytorch\third_party\libuv\build> Write-Host "库文件: $libStatus" -ForegroundColor $(if ($libFiles) {"Green"} else {"Red"}) 库文件: ✅ 找到 个库文件 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> if ($libFiles) { >> Write-Host "库文件名: $($libFiles.Name)" -ForegroundColor Cyan >> } 库文件名: uv.lib PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 验证CMake配置 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $cmakeConfigPath = Join-Path $workingDir "cmake\Modules\FindLibuv.cmake" PS E:\PyTorch_Build\pytorch\third_party\libuv\build> $cmakeStatus = if (Test-Path $cmakeConfigPath) {"✅ 存在"} else {"❌ 缺失"} PS E:\PyTorch_Build\pytorch\third_party\libuv\build> Write-Host "CMake配置: $cmakeStatus" -ForegroundColor $(if ($cmakeStatus -eq "✅ 存在") {"Green"} else {"Red"}) CMake配置: ✅ 存在 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 显示配置内容 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> if (Test-Path $cmakeConfigPath) { >> Write-Host "`nCMake配置内容:" -ForegroundColor Cyan >> Get-Content $cmakeConfigPath >> } CMake配置内容: set(LIBUV_FOUND ON) set(LIBUV_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libuv/include") set(LIBUV_LIBRARIES "${CMAKE_CURRENT_SOURCE_DIR}/third_party/libuv/lib/uv.lib" ) PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 查看可用生成器 PS E:\PyTorch_Build\pytorch\third_party\libuv\build> cmake -G CMake Error: No generator specified for -G Generators * Visual Studio 17 2022 = Generates Visual Studio 2022 project files. Use -A option to specify architecture. Visual Studio 16 2019 = Generates Visual Studio 2019 project files. Use -A option to specify architecture. Visual Studio 15 2017 = Generates Visual Studio 2017 project files. Use -A option to specify architecture. Visual Studio 14 2015 = Generates Visual Studio 2015 project files. Use -A option to specify architecture. Borland Makefiles = Generates Borland makefiles. NMake Makefiles = Generates NMake makefiles. NMake Makefiles JOM = Generates JOM makefiles. MSYS Makefiles = Generates MSYS makefiles. MinGW Makefiles = Generates a make file for use with mingw32-make. Green Hills MULTI = Generates Green Hills MULTI files (experimental, work-in-progress). Unix Makefiles = Generates standard UNIX makefiles. Ninja = Generates build.ninja files. Ninja Multi-Config = Generates build-<Config>.ninja files. Watcom WMake = Generates Watcom WMake makefiles. CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files (deprecated). CodeBlocks - NMake Makefiles = Generates CodeBlocks project files (deprecated). CodeBlocks - NMake Makefiles JOM = Generates CodeBlocks project files (deprecated). CodeBlocks - Ninja = Generates CodeBlocks project files (deprecated). CodeBlocks - Unix Makefiles = Generates CodeBlocks project files (deprecated). CodeLite - MinGW Makefiles = Generates CodeLite project files (deprecated). CodeLite - NMake Makefiles = Generates CodeLite project files (deprecated). CodeLite - Ninja = Generates CodeLite project files (deprecated). CodeLite - Unix Makefiles = Generates CodeLite project files (deprecated). Eclipse CDT4 - NMake Makefiles = Generates Eclipse CDT 4.0 project files (deprecated). Eclipse CDT4 - MinGW Makefiles = Generates Eclipse CDT 4.0 project files (deprecated). Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files (deprecated). Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files (deprecated). Kate - MinGW Makefiles = Generates Kate project files (deprecated). Kate - NMake Makefiles = Generates Kate project files (deprecated). Kate - Ninja = Generates Kate project files (deprecated). Kate - Ninja Multi-Config = Generates Kate project files (deprecated). Kate - Unix Makefiles = Generates Kate project files (deprecated). Sublime Text 2 - MinGW Makefiles = Generates Sublime Text 2 project files (deprecated). Sublime Text 2 - NMake Makefiles = Generates Sublime Text 2 project files (deprecated). Sublime Text 2 - Ninja = Generates Sublime Text 2 project files (deprecated). Sublime Text 2 - Unix Makefiles = Generates Sublime Text 2 project files (deprecated). PS E:\PyTorch_Build\pytorch\third_party\libuv\build> PS E:\PyTorch_Build\pytorch\third_party\libuv\build> # 使用正确的生成器,例如: PS E:\PyTorch_Build\pytorch\third_party\libuv\build> cmake .. -G "Visual Studio 16 2019" -A x64 CMake Error: Error: generator : Visual Studio 16 2019 Does not match the generator used previously: Visual Studio 17 2022 Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory. PS E:\PyTorch_Build\pytorch\third_party\libuv\build> "
最新发布
09-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值