CMake CMAKE_INSTALL_PREFIX 完全忽略
CMake CMAKE_INSTALL_PREFIX completely ignored
我正在尝试根据 this guide(官方原型指南)在我的 windows 机器上构建 protobuf。编译工作正常。但。我想将它安装在我的工作区中,其他项目可以轻松访问它。根据指南,我应该像这样指定安装前缀:
C:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
这没有达到预期的效果,因为最终结果安装在 C:\ 中。
另外,如果我使用环境变量:
$Env:CMAKE_INSTALL_PREFIX="C:/Users/uname/Workspace/protobuf-3.18.0/install"
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..\..
或
$Env:CMAKE_INSTALL_PREFIX="C:\Users\uname\Workspace\protobuf-3.18.0\install"
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..\..
我得到的结果略有不同。它尝试安装在:
C:\Program files (x86)\Protobuf\lib
并且由于缺乏特权而导致课程失败。是否可以在 powershell 中安排 env,使 cmake 实际上选择安装前缀 that I想要?
您必须将 CMAKE_INSTALL_PREFIX
指定为 缓存变量 ,而不是 环境变量 ,并且您应该始终使用 绝对路径,而不是相对路径
C:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
"-DCMAKE_INSTALL_PREFIX=C:/Users/uname/Workspace/protobuf-3.18.0/install" ^
../..
我正在尝试根据 this guide(官方原型指南)在我的 windows 机器上构建 protobuf。编译工作正常。但。我想将它安装在我的工作区中,其他项目可以轻松访问它。根据指南,我应该像这样指定安装前缀:
C:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_INSTALL_PREFIX=../../../../install ^
../..
这没有达到预期的效果,因为最终结果安装在 C:\ 中。 另外,如果我使用环境变量:
$Env:CMAKE_INSTALL_PREFIX="C:/Users/uname/Workspace/protobuf-3.18.0/install"
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..\..
或
$Env:CMAKE_INSTALL_PREFIX="C:\Users\uname\Workspace\protobuf-3.18.0\install"
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..\..
我得到的结果略有不同。它尝试安装在:
C:\Program files (x86)\Protobuf\lib
并且由于缺乏特权而导致课程失败。是否可以在 powershell 中安排 env,使 cmake 实际上选择安装前缀 that I想要?
您必须将 CMAKE_INSTALL_PREFIX
指定为 缓存变量 ,而不是 环境变量 ,并且您应该始终使用 绝对路径,而不是相对路径
C:\Path\to\protobuf\cmake\build\release>cmake -G "NMake Makefiles" ^
-DCMAKE_BUILD_TYPE=Release ^
"-DCMAKE_INSTALL_PREFIX=C:/Users/uname/Workspace/protobuf-3.18.0/install" ^
../..