在Debian虚拟机上使用编译器远程构建静态库时出现此错误。
警告MSB8012
目标路径
(D:\repo path\VisualStudio\MyLibrary\bin\x64\Debug\libMyLibrary.a)
与库的OutputFile属性值不匹配
(D:\repo path\VisualStudio\MyLibrary\~\projects\MyLibrary\bin\x64\Debug\libMyLibrary.a)。
这可能会导致项目生成不正确。
要更正此问题,请确保$(OutDir)、$(TargetName)和$(TargetExt)属性值与在%(Lib.OutputFile)中指定的值匹配。
我在解决方案配置中找不到%(Lib.OutputFile),所以我不知道它在说什么。
我有一个两个解决方案项目,一个是库,另一个是依赖于库的可执行文件。我在解决方案中将库设置为可执行文件的引用。我没有对它做任何其他事情,因为我不确定在linux上远程编译还能做什么。
当使用引用的库构建可执行文件时,我得到这个错误
/home/user/projects/MyLibrary/../../VisualStudio/MyLibrary/bin/x64/Debug/MyLibrary.a:
没有这样的文件或目录
我知道库二进制文件需要在远程机器上,这样编译器就知道了。我不知道如何让Visual Studio将它放在那里,以了解我如何进行解决方案引用。
现在,我应该解释一下这里的目录结构。
MyLibrary和MyLibrary是独立的repo,由于MyLibrary是MyExecutable的依赖项,所以它的repo是MyExecutable的子模块。
所以层次结构看起来是这样的

my-library\
   .git\
   src\
   VisualStudio\
      MyLibrary\
         MyLibrary.sln


my-executable\
   .git\
   src\
   my-library\
      .git\
      src\
   VisualStudio\
      MyExecutable\
         MyExecutable.sln
      MyLibrary\
         MyLibrary.sln

这种结构的要点是,回购协议与IDE无关,而且cmake不能构建针对Linux的VS解决方案,因为它采用Windows平台。Visual Studio项目被放入一个被忽略的目录中。
我只是手动旋转VS解决方案自己,并添加现有项目。
这是MyLibrary的解决方案配置
linux - MSB012在Visual Studio中尝试将Linux静态库与可执行文件链接时发出警告-LMLPHP
linux - MSB012在Visual Studio中尝试将Linux静态库与可执行文件链接时发出警告-LMLPHP
linux - MSB012在Visual Studio中尝试将Linux静态库与可执行文件链接时发出警告-LMLPHP
为了我的可执行性
linux - MSB012在Visual Studio中尝试将Linux静态库与可执行文件链接时发出警告-LMLPHP
linux - MSB012在Visual Studio中尝试将Linux静态库与可执行文件链接时发出警告-LMLPHP
linux - MSB012在Visual Studio中尝试将Linux静态库与可执行文件链接时发出警告-LMLPHP
编辑:
这与我的问题有关:
https://developercommunity.visualstudio.com/content/problem/196761/linux-c-project-doesnt-allow-to-specify-path-to-a.html

最佳答案

发现所有这些问题在VisualStudio中是当前的Linux漏洞。
https://developercommunity.visualstudio.com/content/problem/579152/linux-c-remote-libraries-do-not-archive-ie-compila.html

关于linux - MSB012在Visual Studio中尝试将Linux静态库与可执行文件链接时发出警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57384270/

10-11 23:12
查看更多