【问题标题】:Illegal characters in path when linking c++ objects with Visual C++ for Linux Development将 c++ 对象与 Visual C++ for Linux Development 链接时路径中的非法字符
【发布时间】:2017-04-08 06:35:53
【问题描述】:

我已经用 Visual Studio 2015 for windows 创建了一个 c++ 应用程序。我也喜欢在 linux 发行版上运行这个应用程序,所以我在 windows 上安装了 Visual C++ for Linux Development 插件。我还创建了一个 Ubuntu 16.04 VM 作为目标。 ssh连接成功,文件传输到linux相关文件夹。编译成功完成,但由于在链接过程开始时我也使用共享库,因此出现以下错误:

 Illegal characters in path 

换行

Ld Condition="'@(RemoteLink)' != ''"

文件:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Application Type\Linux\1.0\Linux.Common.targets

我也在 Visual Studio 2017 上尝试过,但结果相同。我在 VC++ 目录和链接器的“共享库搜索路径”字段中都输入了库路径,但错误仍然存​​在。如何解决这个问题?

【问题讨论】:

    标签: c++ linux visual-studio linker


    【解决方案1】:

    正如 Bernie 所说,当出现链接器错误时会出现此消息,通常是 g++ 找不到库。 一直是discussed here

    调高构建输出级别,所有内容都会显示出来。在Tools/Options/Projects and Solutions/Build and Run 中将MSBuild project output verbosity 设置为Normal

    【讨论】:

      【解决方案2】:

      在将 Linux C++ 项目从 Netbeans IDE 迁移到 Visual Studio 2017 后,我今天遇到了同样的问题。

      当我在 VS2017 完成所需的链接器选项(菜单:项目属性/链接器/命令行)时,此链接器错误消息“路径中的非法字符”令人惊讶地消失了。

      在我的情况下,我必须添加“-lrt”选项。在 netbeans IDE 中,当不使用“-lrt”选项时,我收到错误消息“未定义对“clock_gettime”的引用。

      在 Visual Studio 中,链接器错误消息似乎失败或被弄乱了,因此我刚刚收到“路径中的非法字符”消息。

      因此,如果您寻找您为 windows 项目版本提供的显式链接器选项并尝试将其也添加到 linux 版本,它可能会对您有所帮助吗?

      【讨论】:

        猜你喜欢
        • 2018-02-28
        • 2014-02-05
        • 2020-06-14
        • 2015-12-23
        • 1970-01-01
        • 1970-01-01
        • 2018-01-29
        • 1970-01-01
        • 2020-10-13
        相关资源
        最近更新 更多