我正在使用 CMake 生成 Visual Studio 项目文件。我想在设置 PATH 环境变量后运行测试可执行文件,以便它能够加载所需的 dll。我按照 http://www.mail-archive.com/cmake@cmake.org/msg21493.html 的讨论进行了尝试但它不起作用。
您是否将 CMake 与 Visual Studio 一起用于此目的?请分享您的经验。
此外,我找不到调试 CMake 脚本的简单方法,例如查看它分配给 PATH 变量的值。使用 CMAKE_VERBOSE_MAKEFILE
设置 CMake 详细没有帮助。我将如何自己调试它?
最佳答案
要从 CMake 在 Visual Studio 中设置自定义项目设置,您可以使用 XML 文件作为模板,该模板可以从 CMake 配置为用作 .user
文件。
在我的工作中,我们使用它来设置自定义调试参数。
检查包含生成的 .vcxproj
文件的目录以了解 .user
文件中的用户设置。这是我们使用的示例 UserTemplate.vcxproj.user
文件的片段。
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioUserFile
ProjectType="Visual C++"
Version="9.00"
ShowAllFiles="false"
>
<Configurations>
<Configuration
Name="Debug|@USERFILE_PLATFORM@"
>
<DebugSettings
Command="@USERFILE_COMMAND_DEBUG@"
WorkingDirectory="@USERFILE_WORKING_DIRECTORY_DEBUG@"
CommandArguments="@USERFILE_COMMAND_ARGUMENTS_DEBUG@"
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="@USERFILE_REMOTE_MACHINE_DEBUG@"
<!-- More settings removed for snippet -->
/>
</Configuration>
<!-- Rest of Configurations -->
另一个用于设置 PATH 变量的 UserTemplate.vcxproj.user
示例是:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LocalDebuggerEnvironment>PATH=..\Your_path;%PATH%".</LocalDebuggerEnvironment>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
在 CMakeLists.txt
文件旁边设置 UserTemplate.vcxproj.user
文件,您可以将任何需要的 CMake 变量注入(inject) .vcxproj.user
构建项目的文件。
在 CMake 中,您可以设置适当的 CMake 变量(如果需要,还可以在模板文件中添加更多变量)。接下来你可以做这样的事情来配置文件。
# Find user and system name
SET(SYSTEM_NAME $ENV{USERDOMAIN} CACHE STRING SystemName)
SET(USER_NAME $ENV{USERNAME} CACHE STRING UserName)
# Configure the template file
SET(USER_FILE ${_projectName}.vcxproj.${SYSTEM_NAME}.${USER_NAME}.user)
SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE})
CONFIGURE_FILE(UserTemplate.vcxproj.user${USER_FILE} @ONLY)
如果你不关心系统和用户名,下面的配置就足够了。
# Configure the template file
SET(USER_FILE ${_projectName}.vcxproj.user)
SET(OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/${USER_FILE})
CONFIGURE_FILE(UserTemplate.vcxproj.user ${USER_FILE} @ONLY)
关于visual-studio - 如何使用 CMake 和 Visual Studio 设置路径环境变量来运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1005901/