Can someone please help me understand how to build the open source Docfrac C++ Eclipse project with Visual Studio 2012?
Docfrac
UPDATE 1:
When building project in VS 2012, I get:
Unexpected end of file while looking for precompiled header. Did you forget to add '#include "pch.h"' to your source?
UPDATE 2: Got past above issues thanks to Rowland.
Now i get, could not open #include vcl.h. No such file or directory.
CLOSING COMMENTS:
Unfortunately, what I wanted to achieve is not directly possible. Thanks to Rowland for pointing me in the right direction.
For the error relating to precompiled headers, select the source code files (.cpp or .c) that you added to the project in the Solution Explorer. Then right-click, choose Properties. Then in the C/C++ section under Precompiled Headers, select the option that says "Not using precompiled headers". Rebuild and bingo.
Alternatively, you can right-click the project itself and set it for all files.
Related
I am using Microsoft Visual Studio Community 2019 Version 16.8.4 on a Windows 10 machine.
I have established that my include files live in "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include" because I can actually see them listed there. However, I get an error with the line #include <cstdio>.
I have tried right click on project name to bring up a context from which I chose 'Properties'. From the "Solution Project1 Property Pages", I selected "Debug Source Files" and then entered the full directory path to the include files.
I still get the error
You need to add the directory where the headers are found to the project properties under either C/C++ -> Additional include directories or VC++ -> Include directories.
And note that you need to make sure that the directory is added for all project configurations/platforms you wish to be able to build. The Debug source files item is only so that files can be found when running the debugger and have nothing to do with the project build stage.
I ran Visual Studio Installer and noted that one of the workloads, 'Desktop development with C++' had not been activated. After activating it and downloading the required or missing binaries, I am now able to create an empty project using an example of the quintessential 'Hello World' program such as #include int main(){printf("Hello, world");return 0;}
#include <cstdio> is part of the C++ Standard Library headers, if you are getting the error E1696: 'cannot open source file, you might have to retarget the solution/project. Do the following:
Right-click the Solution in the Solution Explorer pane;
Retarget solution;
Follow the steps/press OK.
It worked for me when I couldn't find Standard Library headers, hopefully, it works for you as well.
This may be a very simple question but I haven't been able to figure it out so any help is appreciated.
I have a header that is located in a general folder because I want to use it in several projects for example:
C:\user\geninclude\program\header.h
I created a new empty project with a very simple main, in the main I put
#include <program/header.h>
I then went to the project properties and in VC++ in include directories added C:\user\geninclude\
but when I tried to build the program the program tells me it cannot find header.h because is not in the current directory or in the build system path.
I also tried in the project properties in C/C++ general Additional Include Directories adding C:\user\geninclude\ but still the same error.
I know is something simple I am missing, but I don't know what, I am very new to this just learning.
For reference I am using Visual Studio 2013.
Thank you in advance for your help.
UPDATE: Thank you all for your kind responses, I have tried everything you have told me (check release vs debug in both instances, change / for \ and <> for "", and double checking the header and still the system does not see it. It really is very weird. I'll keep trying...
Please check if your file is really an header file otherwise it won't appear on include.
What you can also do (as a workaround if you need that method fast) is to put your header file (or folder with header files) on the visual studio "include" folder. The path should look like this "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include"
PS: You should also check the properties configuration when you're adding the path to VC++ include directories. You could be adding the path to debug configuration and trying to run it in release mode.
You do indeed want
Project Properties -> Configuration Properties -> C/C++ -> Additional Include Directories
(or something close to that; I'm using VS 2008). Make sure the configuration you're editing in the top left (debug/release) matches the configuration you're building with (typically visible up top in the main window). So it sounds like you may have done it correctly; I'd double-check for the file's existence in that location. You could also try program\header.h instead of program/header.h. If none of those work, try adding C:\user\geninclude\program to the include directories (no \ at the end) and change it to #include "header.h". If that doesn't work either, you've almost surely got the header file in the wrong spot.
Another thing that can cause include files not being picked up is a difference between the platform set in your c++ project's Property Pages and your "Active Solution Platform" in configuration manager. Can just check if one is set to x64 and the other x86
check if you have specified the path correctly. for example I had written cpp instead of c++ and therefore suffered a lot and wasted like an hour searching here and there.
For Visual Studio 2019 users:
Project(P) > yours_project_name properties(P) > Platform Toolset Visual Studio 2019(V###)
Reasoning: You might download the project from Online and they used other version of Visual Studio as Platform.
Project(P) > yours_project_name properties(P) > Windows SDK Version ##.#(latest installed version).
Reasoning: You might download the project from Online and they used version SDK 8.0 while you have SDK 10.0
ntucvhw
In Visual Studio 2015, I have a C++/CLI project with the following error:
"fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?"
I turned off precompiled headers in the project options but it keeps giving me the same error. I even removed the name of the precompiled header file but it still says "stdafx.h".
Edit:
Yes, every source file indivuduially doesn't have it enabled.
Ok. Hans Passant found out what was happening:
The build configuration that I used to build it still had precompiled headers enabled.
You may have disabled it for the project, but each individual source file can have it's own specific compiler settings. It's also possible you disabled pre-compiled headers for a specific source file, erroneously mistaking that action for a project wide setting.
For each individual C/C++ file in Solution Explorer, right click on it and select "Properties". Under C/C++ -> Precompiled Headers, make sure the Precompiled Header setting is "Not using Precompiled Headers".
The right click on your Project name in Solution Explorer and select "Properties as well" Double-check that the project settings are the same.
And if there's a stdafx.cpp file, it likely has the "Create Precompiled Header" setting. You can typically remove this file if it doesn't have any relevant code in it.
Repeat all the same steps for each Solutions configuration (e.g. both Debug and Release).
I met the same problem (turned off precompiled in project properties but the error remains).
Solution:
open .proj file with any text editor and search for
<PrecompiledHeader>Use</PrecompiledHeader>
you will see that there are still some properties set to use it. Just replace word "Use" with "NotUsing" and problem fixed.
Microsoft Visual Studio 2015:
Right click on solution -> Configuration Properties -> C/C++ -> Precompiled Headers -> Precompiled Header => Not Using Precompiled Headers
In my case, I found the pch.h still set in: c++ -> advanced -> forced include files.
Anyhow, Andrew's solution is still the best. Just open the proj. file in a text editor and ctrl-f search for the filename causing the issue. Much easier than skimming through all the properties in vs.
I have seen all the articles on web, but nothing seems to resolve my issue.
Someone plz help me out on this.
I am using debug mode, VS 2010, .net 4 Framework.
In project properties,
CLR is on in general
CLR in on in C++->general
All .cpp files are having use (/yu) in precompiled hearder settings
stdafx.cpp has /yc (create) with clr on
I had the some problem.
Validate that all the C++ files properties (right click on the file in the solution explorer and Properties) are mark with "Common Language RunTime Support" as "/clr"
This error occurs when another version of the compiler has created the PCH file or the PCH is corrupt. Try cleaning the solution or simply rebuilding.
I've successfully installed M$ VC2010 and start writing simple programs using it.
I am very annoyed from the #include<stdafx.h>, So is there any way to compile and run programs without it???
It's for pre-compiled headers. Don't use pre-compiled headers, don't include it.
Goto Project Settings->Precompiled Headers.
Select Not using precompiled headers.
You can also turn off precompiled headers per file.
Setting this in VS Express C++ 2012 is as follows:
In Project Explorer right-click on .cpp file, select Properties.
On the left pane select Configuration Properties/C++/ Precompiled
Headers
Now, on the right pane there is 'Precompiled Header' value which
you can change from Use /Yu to :
'Not Using Precompiled Headers'
Cheers
Of course, just go to Project Settings, C/C++ → Precompiled Headers, and choose "Not Using Precompiled Headers".
BTW: On large projects using precompiled headers may significantly decrease build time.
When you create your project, create an empty project.
For now, you can disable it in Project Settings.