-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include paths not being passed from VSLinux to remote build #170
Comments
Regarding the Command Line observation, I want to note that what you see in the Property Pages in the Command Line section, it's an approximation of the actually command line, the reason for that being extra code that we run only during the build and the Property Pages not having access to. For the most part, the discrepancy will only be duplicates and de-duplication. Regarding additional include directories. The way you can add the directory is using Property Pages - Configuration Properties - C/C++ - General - Additional Include Directories. This is a semi colon separated list, of both local and remote paths. The local paths are only used for IntelliSense, the remote paths are only used for build. So if you wanted to add a directory say /usr/src/linux-headers-4.8.0-41/usr, the you can just append that to Additional Include Directories, and reference it with #include <> syntax, note that in C++, quotes in #include only resolves files relative to the directory in which the source file the #include is made from, while #include <foo.h> for example, is resolving the header using the Additional Include Directories. Please let me know if this doesn't work for you or you have more questions. |
Wow ... Ion ... I have been using VS since the early 90's from 1.52 and on NT 3.51 ... the above is like what you suggest to an intern or graduate. If you are saying what appears in the properties -> Configuration -> C++ -> Command Line has no direct relationship to the Command Line actually used (ignoring uniqueness and ordering) then I am worried .... to be precise ... my many thanks |
@braindeaddeveloper, apologies, I'm just trying to cover all the bases. Can you verify one more thing, when you modify the values in Property Pages, is the Active Configuration and Platform selected? In the Property Pages it should say "Active" at the top. Sometimes the configuration or platform can switch from the Active one, so if you add any settings it will effectively not be applied to build if it is not set in the active one. |
Hi Ion I have to say this is a killer. thanks |
Is Additionally, I attached a project that I used in one of my attempts to reproduce the problem, would it be possible to open it and try to build it and see if you can see the -I included or not included? To further narrow it down. |
Tentatively closing due to inactivity. If this still reproduces for you, please reactivate and provide us with the repro steps. |
Hi Ion I cannot send any more than I have without risking being expelled from the company as it is a corporate offence to send code of any sort out of the company and there are detectors running ... it is an investment bank. -I "//curl/include/" is certainly not what I am passing ... I have just remove the with a place holder |
I don't think it right you closed this .... |
Hi Ion
added comments I cannot reactivate please do so as I cannot use VSLinux at all and the same with 15.3
thanks
regardz
mark
On 5 Sep 2017, at 23:47, Ion Todirel <notifications@github.com<mailto:notifications@github.com>> wrote:
Tentatively closing due to inactivity. If this still reproduces for you, please reactivate and provide us with the repro steps.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#170 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AcucNRrO4xhchtEVKZ8nH9sPkibZUQK8ks5sfc-RgaJpZM4O0a6x>.
|
Hi Ion I get the following when I try and open your ConsoleApplication project in 15.3: ===================== =================== |
I would note that I can see in project properties c/c++ all options : Additional Options : -I /usr/include |
I can confirm that -I /includepath into Additional Options : |
Reactivating based on activity; @braindeaddeveloper, we never been able to reproduce the problem you're seeing, regarding closing the issue, we have a policy on closing issues that we cannot reproduce on our side when there is no activity from the original author opening it after a certain time, there is nothing we can do in that case, as in this case we could not repro. Thanks for providing the additional information, we will investigate. |
@braindeaddeveloper regarding the exception that your seeing, could you open a separate issue for that? some questions about it, what is the version of Visual Studio that you are using? I'm looking for the entire version number from Help - About. Could you also tell me if your machine name, contains any columns, commas, dots in the name? Is it an IP? |
Hi Ion Installed Version: Professional Visual Basic 2017 00370-10000-02467-AA085 Visual C# 2017 00370-10000-02467-AA085 Visual C++ 2017 00370-10000-02467-AA085 Visual F# 4.1 00370-10000-02467-AA085 Application Insights Tools for Visual Studio Package 8.8.00712.1 ASP.NET and Web Tools 2017 15.0.30726.0 ASP.NET Core Razor Language Services 1.0 ASP.NET Template Engine 2017 15.0.30726.0 ASP.NET Web Frameworks and Tools 2017 5.2.50601.0 Azure App Service Tools v3.0.0 15.0.30728.0 Common Azure Tools 1.10 GitHub.VisualStudio 2.3.2.32 JavaScript Language Service 2.0 JavaScript Project System 2.0 JavaScript UWP Project System 2.0 MenuCommands Extension 1.0 Microsoft Continuous Delivery Tools for Visual Studio 0.3 Microsoft JVM Debugger 1.0 Microsoft MI-Based Debugger 1.0 Microsoft Visual C++ Wizards 1.0 Microsoft Visual Studio VC Package 1.0 Node.js Tools 1.0.0.0 NuGet Package Manager 4.3.1 SQL Server Data Tools 15.1.61707.200 TypeScript 2.3.4.0 Visual C++ for Linux Development 1.0.7 Visual Studio Code Debug Adapter Host Package 1.0 Visual Studio tools for CMake 1.0 Visual Studio Tools for Universal Windows Apps 15.0.26730.08 Web Extension Pack 2017 15.0.2 |
I can confirm there are no funny characters in the server name other than dots i.e. |
Also I am not seeing an exception ... |
@braindeaddeveloper could you open a separate issue for the System.NullReferenceException exception? |
I am seeing the same problem. Adding -I "$(RemoteProjectDir)/include" into C/C++->Additional Options doesn't work, g++ cannot find include files and the build fails! |
@ademyankov regarding the relative path problem, that is a known bug and we are planning on fixing it soon @braindeaddeveloper is that the same problem you're seeing? |
@itodirel, @ademyankov ... no I was specifying full paths |
I am facing the same problem with VS2015, replacing the relative path with the whole path seems to solve the problem as @ademyankov suggested. |
I have updated to 15.5 and started a new project against a new linux host and its still happening ... doesnt matter how I add the additional include paths they arent passed over to the compiler on linux unless I specifically add them to the Additional Options field of the C/C++->Command Line property page. gcc compiler : 4.83 |
So I have a question : is there a documented or undocumented flag I can use with VS or in the solution/project settings to show exactly what is being sent to the remote linux host ? Unfortunately I dont have the ability/rights to use netmon or any packet sniffers as its an investment bank and very tightly regulated. |
We will need a repro, or if you like you can contact us directly at vcpplinux-support@microsoft.com. I would recommend trying to get a small repro that doesn't involve any of your IP and once you can repro, share the repro with us: logs and the project. Yes. Please change the verbosity in Tools - Options - Projects and Solutions - Build and Run - MSBuild project build output verbosity, to Normal. And then when you build, you will see the compiler command line as this, in the Output Window:
If you add an additional include, in Property Pages - Configuration Properties - C/C++ - General - Additional Include Directories, it will show up like this:
Note that currently the paths specified there, have to be absolute, remote paths, not local, nor Windows ones. The path above I added is /home/foo, notice the -I just after main.cpp above. The limitation with the absolute paths is coming to an end, and we fixed that internally which will be available in the next release. |
@braindeaddeveloper I created a video as a demo for this, would it be possible to take a look and tell us where it breaks? Visual C++ for Linux Development - Setting up additional include directories |
Hi Ion ... I'm afraid that's blocked from work I will check when I get home. thanks |
Hi @braindeaddeveloper did you have any success in configuring your includes? |
This is still an issue with relative includes on VS2017 15.5.6, with WSL as my build target. While the include files themselves are copied remotely and placed in their directories according to the project filters, the fact that the directories are referenced as "Additional Include Directories" appears to only affect Intellisense recognition and I'm required to update my sources to reference each include file by relative directory. Unsure if it's related, but there appear to be issues with directories with Linux projects in general. I also had to fiddle with the remote output and debugging directories to get things to show up in the expected place. Part of the issue was that I was trying output files to I eventually got things to properly copy remotely and launch GDB, though when the You can attempt to reproduce with the solution in this repo by building/launching the |
I have exact same problem with the latest version of VS2017, use absolute paths, and tried reinstalling it several times, including full removal. VS passes to Linux WRONG include directories, only some etc. The missing path shows up in the project's General and Command Line tab, but not in the command that runs over SSH. It also does not remove the useless Windows path mentioned above. That path was there from the beginning and is a complete mystery. The problem started suddenly yesterday midday without any (known) updates. Adding that missing absolute paths to Additional Options in Command Line helps. No angle brackets necessary, just -I /path. |
Hi @vgoldring , I am looking at the issue. In 15.7, we have revamped the translator between pc and linux. Can you provide examples of paths that is not translated correctly? Here are few cases where translation are skipped. |
Hi Felix,
Thank you for looking at the problem.
What do you mean by “not translated”? The problem is not “between pc and linux”, but in not sending some paths listed in the Additional Include Directories of General page for C/C++ in project settings. If by “not translated” you mean “not sent to Linux”, this would be bug, as additional include directories sent to g++ may not (and usually do not) exist on the PC, but only on the Linux machine. If that’s the case, noting that an absolute path on Linux begins with ‘/’ (the only kind supposedly supported now according to the tool’s blog, not relative), so how can you not “translate” and not send those?
From the behavior of the CLinux we can see that it’s not really true. Some paths are sent, and other are not.
In the example I uploaded (I will attach more here), all paths given as -I in Command Line Additional Options page when present in the Additional Include Directories (the location we all previously considered normal for configuration of the project and from where they were moved to Additional Options of Command Line) are not sent to g++. The others are still in the original place and are being sent fine. Moving those that were not sent to the Command Line’s Additional Options is our workaround.
Please find some projects attached, along with the solution.
Sincerely,
Val Goldring
From: Yue (Felix) Huang <notifications@github.com>
Sent: Wednesday, March 14, 2018 9:42 PM
To: Microsoft/VSLinux <VSLinux@noreply.github.com>
Cc: vgoldring <vgvgoldring@gmail.com>; Mention <mention@noreply.github.com>
Subject: Re: [Microsoft/VSLinux] Include paths not being passed from VSLinux to remote build (#170)
Hi @vgoldring <https://github.com/vgoldring> , I am looking at the issue. In 15.7, we have revamped the translator between pc and linux. Can you provide examples of paths that is not translated correctly?
Here are few cases where translation are skipped.
Absolution path to missing directories are not translated.
Paths that start with '/' or '~/' are not translated.
Drive letters (C:) alone are ignored. (C:) is ok.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#170 (comment)> , or mute the thread <https://github.com/notifications/unsubscribe-auth/AMIYbSp2m00aU89hqHCLXg5xyfldBzWMks5tedUQgaJpZM4O0a6x> . <https://github.com/notifications/beacon/AMIYbYEoP7ARPRdfqOE1jz6osYqrQAayks5tedUQgaJpZM4O0a6x.gif>
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27004.2009
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fpx", "fpx\fpx.vcxproj", "{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Hedger", "Hedger\Hedger.vcxproj", "{C01A762F-6075-46F8-8801-BE7DB262C4FE}"
ProjectSection(ProjectDependencies) = postProject
{3218B042-DA62-45FD-89A7-2DFC7037594D} = {3218B042-DA62-45FD-89A7-2DFC7037594D}
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6} = {04C23F94-A81B-4D3D-AB68-F87AAA473BD6}
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B} = {3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}
{3984A0A9-584A-4276-817D-E55F0A7A4886} = {3984A0A9-584A-4276-817D-E55F0A7A4886}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OCConn", "OCConn\OCConn.vcxproj", "{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hdg", "hdg\hdg.vcxproj", "{3984A0A9-584A-4276-817D-E55F0A7A4886}"
ProjectSection(ProjectDependencies) = postProject
{3218B042-DA62-45FD-89A7-2DFC7037594D} = {3218B042-DA62-45FD-89A7-2DFC7037594D}
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6} = {04C23F94-A81B-4D3D-AB68-F87AAA473BD6}
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B} = {3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "discovery", "discovery\discovery.vcxproj", "{3218B042-DA62-45FD-89A7-2DFC7037594D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestLib", "TestLib\TestLib.vcxproj", "{BDA8D147-0A05-4432-AE77-09A6558A6488}"
ProjectSection(ProjectDependencies) = postProject
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6} = {04C23F94-A81B-4D3D-AB68-F87AAA473BD6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opx", "opx\opx.vcxproj", "{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}"
ProjectSection(ProjectDependencies) = postProject
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6} = {04C23F94-A81B-4D3D-AB68-F87AAA473BD6}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "qtr", "qtr\qtr.vcxproj", "{C666B33B-717C-4F17-9050-FBB000F476FD}"
ProjectSection(ProjectDependencies) = postProject
{3218B042-DA62-45FD-89A7-2DFC7037594D} = {3218B042-DA62-45FD-89A7-2DFC7037594D}
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA} = {762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}
{3984A0A9-584A-4276-817D-E55F0A7A4886} = {3984A0A9-584A-4276-817D-E55F0A7A4886}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Quoter", "Quoter\Quoter.vcxproj", "{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}"
ProjectSection(ProjectDependencies) = postProject
{C666B33B-717C-4F17-9050-FBB000F476FD} = {C666B33B-717C-4F17-9050-FBB000F476FD}
{3984A0A9-584A-4276-817D-E55F0A7A4886} = {3984A0A9-584A-4276-817D-E55F0A7A4886}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM = Release|ARM
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Debug|ARM.ActiveCfg = Debug|x64
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Debug|ARM.Build.0 = Debug|x64
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Debug|x64.ActiveCfg = Debug|x64
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Debug|x64.Build.0 = Debug|x64
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Debug|x86.ActiveCfg = Debug|x86
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Debug|x86.Build.0 = Debug|x86
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Release|ARM.ActiveCfg = Release|ARM
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Release|ARM.Build.0 = Release|ARM
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Release|x64.ActiveCfg = Release|x64
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Release|x64.Build.0 = Release|x64
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Release|x86.ActiveCfg = Release|x86
{3821BFA6-59D9-4B43-A32D-D3D3CA939B1B}.Release|x86.Build.0 = Release|x86
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Debug|ARM.ActiveCfg = Debug|ARM
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Debug|ARM.Build.0 = Debug|ARM
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Debug|x64.ActiveCfg = Debug|x64
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Debug|x64.Build.0 = Debug|x64
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Debug|x86.ActiveCfg = Debug|x86
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Debug|x86.Build.0 = Debug|x86
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Release|ARM.ActiveCfg = Release|ARM
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Release|ARM.Build.0 = Release|ARM
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Release|x64.ActiveCfg = Release|x64
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Release|x64.Build.0 = Release|x64
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Release|x86.ActiveCfg = Release|x86
{C01A762F-6075-46F8-8801-BE7DB262C4FE}.Release|x86.Build.0 = Release|x86
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Debug|ARM.ActiveCfg = Debug|ARM
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Debug|ARM.Build.0 = Debug|ARM
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Debug|x64.ActiveCfg = Debug|x64
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Debug|x64.Build.0 = Debug|x64
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Debug|x86.ActiveCfg = Debug|x86
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Debug|x86.Build.0 = Debug|x86
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Release|ARM.ActiveCfg = Release|ARM
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Release|ARM.Build.0 = Release|ARM
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Release|x64.ActiveCfg = Release|x64
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Release|x64.Build.0 = Release|x64
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Release|x86.ActiveCfg = Release|x86
{04C23F94-A81B-4D3D-AB68-F87AAA473BD6}.Release|x86.Build.0 = Release|x86
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Debug|ARM.ActiveCfg = Debug|ARM
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Debug|ARM.Build.0 = Debug|ARM
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Debug|x64.ActiveCfg = Debug|x64
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Debug|x64.Build.0 = Debug|x64
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Debug|x86.ActiveCfg = Debug|x86
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Debug|x86.Build.0 = Debug|x86
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Release|ARM.ActiveCfg = Release|ARM
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Release|ARM.Build.0 = Release|ARM
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Release|x64.ActiveCfg = Release|x64
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Release|x64.Build.0 = Release|x64
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Release|x86.ActiveCfg = Release|x86
{3984A0A9-584A-4276-817D-E55F0A7A4886}.Release|x86.Build.0 = Release|x86
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Debug|ARM.ActiveCfg = Debug|ARM
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Debug|ARM.Build.0 = Debug|ARM
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Debug|x64.ActiveCfg = Debug|x64
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Debug|x64.Build.0 = Debug|x64
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Debug|x86.ActiveCfg = Debug|x86
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Debug|x86.Build.0 = Debug|x86
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Release|ARM.ActiveCfg = Release|ARM
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Release|ARM.Build.0 = Release|ARM
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Release|x64.ActiveCfg = Release|x64
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Release|x64.Build.0 = Release|x64
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Release|x86.ActiveCfg = Release|x86
{3218B042-DA62-45FD-89A7-2DFC7037594D}.Release|x86.Build.0 = Release|x86
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Debug|ARM.ActiveCfg = Debug|ARM
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Debug|ARM.Build.0 = Debug|ARM
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Debug|x64.ActiveCfg = Debug|x64
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Debug|x64.Build.0 = Debug|x64
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Debug|x86.ActiveCfg = Debug|x86
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Debug|x86.Build.0 = Debug|x86
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Release|ARM.ActiveCfg = Release|ARM
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Release|ARM.Build.0 = Release|ARM
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Release|x64.ActiveCfg = Release|x64
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Release|x64.Build.0 = Release|x64
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Release|x86.ActiveCfg = Release|x86
{BDA8D147-0A05-4432-AE77-09A6558A6488}.Release|x86.Build.0 = Release|x86
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Debug|ARM.ActiveCfg = Debug|ARM
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Debug|ARM.Build.0 = Debug|ARM
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Debug|x64.ActiveCfg = Debug|x64
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Debug|x64.Build.0 = Debug|x64
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Debug|x86.ActiveCfg = Debug|x86
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Debug|x86.Build.0 = Debug|x86
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Release|ARM.ActiveCfg = Release|ARM
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Release|ARM.Build.0 = Release|ARM
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Release|x64.ActiveCfg = Release|x64
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Release|x64.Build.0 = Release|x64
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Release|x86.ActiveCfg = Release|x86
{762EAC7D-1A55-4DEC-B02F-7C34BCDFA6EA}.Release|x86.Build.0 = Release|x86
{C666B33B-717C-4F17-9050-FBB000F476FD}.Debug|ARM.ActiveCfg = Debug|ARM
{C666B33B-717C-4F17-9050-FBB000F476FD}.Debug|ARM.Build.0 = Debug|ARM
{C666B33B-717C-4F17-9050-FBB000F476FD}.Debug|x64.ActiveCfg = Debug|x64
{C666B33B-717C-4F17-9050-FBB000F476FD}.Debug|x64.Build.0 = Debug|x64
{C666B33B-717C-4F17-9050-FBB000F476FD}.Debug|x86.ActiveCfg = Debug|x86
{C666B33B-717C-4F17-9050-FBB000F476FD}.Debug|x86.Build.0 = Debug|x86
{C666B33B-717C-4F17-9050-FBB000F476FD}.Release|ARM.ActiveCfg = Release|ARM
{C666B33B-717C-4F17-9050-FBB000F476FD}.Release|ARM.Build.0 = Release|ARM
{C666B33B-717C-4F17-9050-FBB000F476FD}.Release|x64.ActiveCfg = Release|x64
{C666B33B-717C-4F17-9050-FBB000F476FD}.Release|x64.Build.0 = Release|x64
{C666B33B-717C-4F17-9050-FBB000F476FD}.Release|x86.ActiveCfg = Release|x86
{C666B33B-717C-4F17-9050-FBB000F476FD}.Release|x86.Build.0 = Release|x86
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Debug|ARM.ActiveCfg = Debug|ARM
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Debug|ARM.Build.0 = Debug|ARM
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Debug|x64.ActiveCfg = Debug|x64
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Debug|x64.Build.0 = Debug|x64
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Debug|x86.ActiveCfg = Debug|x86
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Debug|x86.Build.0 = Debug|x86
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Release|ARM.ActiveCfg = Release|ARM
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Release|ARM.Build.0 = Release|ARM
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Release|x64.ActiveCfg = Release|x64
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Release|x64.Build.0 = Release|x64
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Release|x86.ActiveCfg = Release|x86
{2E9841AC-0C0D-4EE2-AB77-C4F4CC463019}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {43E243CE-4793-4D1E-ACD7-A09A8DBA90A8}
EndGlobalSection
EndGlobal
|
On a separate note, why would even touch the part of the project that worked fine?
The project itself is not (and cannot be) represented on PC in full.
All of the environment is actually only on Linux machine.
The header files necessary for Intellisense (which may or may not be full set of headers used for compilation) works when indicated in VC++ Directories page Include Directories. This arrangement was simple enough and usable, if not clearly documented. People figured it out and used in their projects.
More ambitious approach of automatically supporting full set of headers for Intellisense is implemented by VisualGDB, but took a long time to bring to a reasonably working state and I believe is still prone to breakdowns, particularly when moving or accessing a project from different PCs or to compile on different Linux machines. It also undertakes large, sometimes huge downloads of whole directories (not just header files) and may be time consuming on some networks.
From: Yue (Felix) Huang <notifications@github.com>
Sent: Wednesday, March 14, 2018 9:42 PM
To: Microsoft/VSLinux <VSLinux@noreply.github.com>
Cc: vgoldring <vgvgoldring@gmail.com>; Mention <mention@noreply.github.com>
Subject: Re: [Microsoft/VSLinux] Include paths not being passed from VSLinux to remote build (#170)
Hi @vgoldring <https://github.com/vgoldring> , I am looking at the issue. In 15.7, we have revamped the translator between pc and linux. Can you provide examples of paths that is not translated correctly?
Here are few cases where translation are skipped.
Absolution path to missing directories are not translated.
Paths that start with '/' or '~/' are not translated.
Drive letters (C:) alone are ignored. (C:) is ok.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#170 (comment)> , or mute the thread <https://github.com/notifications/unsubscribe-auth/AMIYbSp2m00aU89hqHCLXg5xyfldBzWMks5tedUQgaJpZM4O0a6x> . <https://github.com/notifications/beacon/AMIYbYEoP7ARPRdfqOE1jz6osYqrQAayks5tedUQgaJpZM4O0a6x.gif>
|
Hello @vgoldring , I can't determine what has changed from the details provided. Could you please copy and paste the your Additional Option workaround and your input in Additional Include directories? Until I know more, I can't provide detail on what regressed. VC++ Linux is actively being developed and even with the best of testing, regression are still possible. Preview time period allow us to take feedback and actively make fixes. Once again. Thanks you for use Preview builds. |
@vgoldring @svenbieg @braindeaddeveloper can you give us a repro, we are unable to reproduce what you're seeing; @vgoldring the solution that you attached would not help us, we need the project, if you can't give us the project, please give us a minimal repro; can you also tell us exactly the version of Visual Studio that you're using? You can get it from help about; If you follow this video, can you tell us what you're doing different? Visual C++ for Linux Development - Setting up additional include directories |
You mean IntelliSense for remote headers? We implemented that feature in 15.7 Preview 2, if possible, can you try it, we are looking for feedback. We call the compiler, and automatically detect the headers on your Linux system, and download full directories back to Windows, and cache them. So you get IntelliSense for native Linux development, whether you're using the C or C++ standard library, or Boost, POSIX etc. We can even detect changes from apt-get, so if you apt-get install new development libraries, you can get them and have IntelliSense for it. |
I did send you several project files along with the solution.
What I do differently that in the video is that I add additional include directories before the already predefined variables, not after as in the video. Also, I remove one or all of them as they introduce into the build path a useless directory from the PC.
From: Ion Todirel <notifications@github.com>
Sent: Monday, April 02, 2018 8:03 PM
To: Microsoft/VSLinux <VSLinux@noreply.github.com>
Cc: vgoldring <vgvgoldring@gmail.com>; Mention <mention@noreply.github.com>
Subject: Re: [Microsoft/VSLinux] Include paths not being passed from VSLinux to remote build (#170)
@vgoldring <https://github.com/vgoldring> @svenbieg <https://github.com/svenbieg> @braindeaddeveloper <https://github.com/braindeaddeveloper> can you give us a repro, we are unable to reproduce what you're seeing; @vgoldring <https://github.com/vgoldring> the solution that you attached would not help us, we need the project, if you can't give us the project, please give us a minimal repro; can you also tell us exactly the version of Visual Studio that you're using? You can get it from help about;
If you follow this video, can you tell us what you're doing different? Visual C++ for Linux Development - Setting up additional include directories <https://vimeo.com/251710903>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#170 (comment)> , or mute the thread <https://github.com/notifications/unsubscribe-auth/AMIYbdZTfmcSCxaRSuPeoyh68LFxQBf3ks5tkspggaJpZM4O0a6x> . <https://github.com/notifications/beacon/AMIYbdCrLgrZFt2nn7tUmI6uHGY4JpTdks5tkspggaJpZM4O0a6x.gif>
|
We do not have the project attachments. @vgoldring can you gives us an example of an include path that is not passed to the compiler? |
Hi, we are not able to reproduce, please let me know if there are any issues here, and I'd happily reactivate and look into it, we are trying to get the issue list number down, so tentatively closing |
The command line option "-iquote projects/.." does work! But only with quotes " and slashes /! |
I am getting repeated failures to find include files in various VSLinux projects.
An example of this :
From project / properties / c/c++ / command line
"/path to gcc/gcc" -W"switch" -W"no-deprecated-declarations" -W"empty-body" -W"conversion" -W"return-type" -W"parentheses" -W"no-pointer-sign" -W"no-format" -W"uninitialized" -W"unreachable-code" -W"unused-function" -W"unused-value" -W"unused-variable" -std=c++11 -Wall -fno-strict-aliasing -I "/path to gcc/gcc/include/c++/4.8.3" -I "/path to curl/curl/include/" -I "/path to boos/boost/1_57_0/include" -g2 -gdwarf-2 "/path to gcc/bin/g++" -O0 "3600000" -fthreadsafe-statics -W"switch" -W"no-deprecated-declarations" -W"empty-body" -W"conversion" -W"return-type" -W"parentheses" -W"no-format" -W"uninitialized" -W"unreachable-code" -W"unused-function" -W"unused-value" -W"unused-variable" -Werror -frtti -fno-omit-frame-pointer -std=c11 -fexceptions -o "\path to project\teatest001\obj\x64\Debugx64%(filename).o"
But when build is selected I can see from build output window
...
Invoking g++
/path to gcc/bin/g++ -c -x c++ /path to project/teatest001/main.cpp -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\Linux\include\usr\local\include" -g2 -gdwarf-2 -o "/path to project/teatest001/obj/x64/Debug/main.o" -Wall -Werror -Wswitch -W"no-deprecated-declarations" -W"empty-body" -Wconversion -W"return-type" -Wparentheses -W"no-format" -Wuninitialized -W"unreachable-code" -W"unused-function" -W"unused-value" -W"unused-variable" -O0 -fno-strict-aliasing -fno-omit-frame-pointer -fthreadsafe-statics -fexceptions -frtti -std=c++11 main.cpp
then I get include file not found errors as you can see includes from the command line window arent being passed to gcc
As this is a remote build on a Linux machine : -I "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\Linux\include\usr\local\include" is pointless but as you can see that is the only include path passed to the remote build.
unfortunately I cant send you more than this ... its a financial institution and a corporate offence to disclose anything more than this
Repro is simple create a VSLinux project against a remote Linux server over ssh add a remote include path to the settings run build then check the outputs command line. Add a source file which has a #include "remoteheader.h" from that include path. Run build and see error.
VS2017 is latest 15.2 version build 26430.16. Remote server Redhat 6.5 GCC version 4.8.3
thanks
The text was updated successfully, but these errors were encountered: