首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安装在哪里?-检测`cl.exe`和`link.exe`的位置

安装在哪里?-检测`cl.exe`和`link.exe`的位置
EN

Stack Overflow用户
提问于 2020-05-02 04:36:52
回答 2查看 2.2K关注 0票数 4

我记得在过去的日子里,人们在Windows上编译任何东西之前都要运行vcvarsall.bat。假设默认安装位置,在哪里可以找到cl.exelink.exe和朋友;如果不在PATH

企图:

代码语言:javascript
运行
复制
#include <stdlib.h>
#include <stdio.h>

#include <Windows.h>

const inline LPCWSTR find_cl() {
    /* Most of this list derived from 
       https://gitlab.kitware.com/cmake/cmake/-/blob/417b765f/Modules/GetPrerequisites.cmake#L670 */
    static const LPCSTR cl_paths[12] = {
        "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\bin",
        "C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin",
        "C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\bin",
        "C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin",
        "C:\\Program Files\\Microsoft Visual Studio 9.0\\VC\\bin",
        "C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\bin",
        "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\BIN",
        "C:\\Program Files (x86)\\Microsoft Visual Studio 8\\VC\\BIN",
        "C:\\Program Files\\Microsoft Visual Studio .NET 2003\\VC7\\BIN",
        "C:\\Program Files (x86)\\Microsoft Visual Studio .NET 2003\\VC7\\BIN",
        "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.25.28610\\bin\\Hostx86\\x64",
        "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.25.28610\\bin\\Hostx86\\x86",
    };

    size_t i;
    for (i = 0; i < sizeof cl_paths / sizeof cl_paths[0]; i++)
        if (_access(cl_paths[i], 0) == 0)
            return cl_paths[i];
    return NULL;
}

有一个微不足道的入口点:

代码语言:javascript
运行
复制
int main(void) {
    const LPCWSTR cl_path = find_cl();

    if (cl_path == NULL)
        return EXIT_FAILURE;

    printf("Found cl_path of: \"%s\"\n", cl_path);
    return EXIT_SUCCESS;
}

我还将检测架构,因此将首先查找与当前体系结构匹配的编译器,然后再返回到其他体系结构。我假设某个地方有一个30+变体的列表?

EN

回答 2

Stack Overflow用户

发布于 2022-07-05 18:22:00

您可以在Visual安装中找到cl.exelink.exe。这将出现在Program Files (x86) -> Microsoft Visual Studio -> <year> -> BuildTools -> VC -> Tools -> MSVC -> <version> -> bin -> Hostx64 -> x64

用适当的年份和版本替换这里,Hostx64和x64可能改为Hostx86和/或x86,这取决于您是在使用32位还是64位,但是在2022年,您确实应该使用64位系统。

票数 3
EN

Stack Overflow用户

发布于 2022-11-24 21:39:26

当前路径是<install location>\Microsoft Visual Studio\<year>\Community\VC\Tools\MSVC\<version>\bin\Hostx<bitness>\x<bitness>

例如,在运行MSVS 2022和MSVC14.34.31933的64位系统上,将MSVS安装到程序文件(这是默认位置)下的C:它应该是C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61554532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档