I am attempting to port a 32-bit program to 64-bit, using the CLANG compiler within C++Builder 10.4/11. However, when C++Builder attempts to link the EXE it generates the following error message:
C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\CodeGear.Cpp.Targets(3988,5): error : Fatal: Invalid object file 'altsvc.o'
I cannot find a file called "altsvc.cpp" anywhere in my source files or in the C++Builder library file folders. It is not listed in the executable's project (.cbproj) file either.
Has anyone encountered this error before and know what causes it?
I am working on a c++ project using mosquitto library on github. I am trying to compile the C++ on a windows computer on the command line; however I keep getting error
Fatal error: mosquitto.h: no such file or directory
include "mosquitto.h"
I have installed the mosquitto library in the windows system, underneath:
C:\Program Files\mosquitto\devel\mosquitto.h
Is there something else that I have to do as well in order to compile the cpp from the command line. How do I tell g++ the whereabout of the mosquitto.h file. So I can compile on the command line
Thank for your help I am new to C++.
I managed to solve this question, I had o copy the mosquitto.h into
C:\cygwin64\usr\include
Then when I type g++ nameOfFile it compiled
I have created a c++ static library in eclipse which is using opencv.It is build fine and I want to include it in another c project in the same workspace.
Trying with
1)I have included library path in properties->c/c++ build->setting ->GCC C compiler ->Includes ->"path of project".
2)properties->c/c++ build->setting ->GCC C Linker-> Libraries ->Liraries(-i)->"Name of Lib"
3).properties->c/c++ build->setting ->GCC C Linker-> Libraries ->Liraries(-i)->"path of Lib"
But,this is not working while running the c project cannot find the static library functions giving error -"UNDEFINED REFERENCE TO THE FUNCTION"
Suggest a way to solve the problem.
Thanks in advance.
Got the answer.
These are the files needed to include
"${workspace_loc:/staticLibrary}"
MSDK/include
/IPP_Legacy/x64/include
Levmar/x64/include
/opencv/lib
opengl/x64/include/GL
Tesseract/x64/include/tesseract
freeGLUT/x64/include/GL
/ffmpeg/x64/include/libavcodec
compilers_and_libraries_2016.3.210/linux/ipp/include
compilers_and_libraries_2016.3.210/linux/mkl/include
compilers_and_libraries_2016.3.210/linux/tbb/include
compilers_and_libraries_2016.3.210/linux/daal/include
After these inclusion I faced a error of
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
for which I got help from the link
http://i0.wp.com/omtlab.com/wp-content/uploads/2013/07/4.png
now the program is working all fine
Thank you
Whenever I try to compile this code it always ends up with this error:
In file included from /usr/include/wchar.h:6:0,
from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/cwchar:44,
from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/bits/postypes.h:40,
from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/iosfwd:40,
from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/ios:38,
from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/ostream:38,
from /usr/lib/gcc/i686-pc-cygwin/4.9.2/include/c++/iostream:39,
from test.cpp:1:
/usr/include/sys/reent.h:14:20: fatal error: stddef.h: No such file or directory
#include <stddef.h>
^
compilation terminated.
The code I was trying to compile is:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World! :D";
return 0;
}
The error is because your gcc-core package and gcc-g++ are not of the same version. Either downgrade one of them to solve the problem or update both the libraries. Updating both the libraries is the recommended way.
I had this error on a fresh MinGW install, it had nothing to do with the installed packages mentioned in the current accepted answer by "Prasanth Karri". In my case the issue was caused by -nostdinc in my Makefile. I actually only needed that compiler flag when building for a different target platform (not when using MinGW) so I fixed the issue by removing that flag from MinGW builds.
When I was incorporating a software library written in C into an existing demo project(used a C++ mbed library) I encountered this problem. The demo project would compile just fine, but after I replaced the existing main file by my own, this error occurred.
At this point I hadn't yet thought about the fact that the mbed library that I needed was written in C++. My own main file was a .c file that #include the mbed header file. As a result I used my normal C source as if it was a C++ source. Therefore the compiler that was used to compile my main file was the C compiler.
This C compiler then encountered a #include of a module that actually does not exist (within its scope), as it's not a C++ compiler.
Only after I inspected the output of the build log I realised the various source C and C++ files were compiled by more that 1 compiler(the c++ compiler). The project used used compilers arm-none-eabi-c++ and arm-none-eabi-gcc (for embedded systems) as seen below.
Compile log:
Building file: ../anyfile.cpp
Invoking: MCU C++ Compiler
arm-none-eabi-c++ <A lot of arguments> "../anyfile.cpp"
Finished building: ../anyfile.cpp
Building file: ../main.c
Invoking: MCU C Compiler
arm-none-eabi-gcc <A lot of arguments> "../main.c"
In file included from <Project directory>\mbed/mbed.h:21:0,
from ../main.c:16:
<Project directory>\mbed/platform.h:25:19: fatal error: cstddef: No such file or directory
compilation terminated.
Of course in a C++ environment cstddef exists, but in a C environment cstddef doesn't exist, in stead it's just C's implementation of stddef.
In other words, cstddef does not exist in the C compiler.
I resolved this problem by renaming my main.c file to main.cpp and the rest of the code compiled smoothly too.
TLDR/Conclusion: When building a C++ project, avoid mixing C files with C++ files(sources and headers). If possible rename .c files to .cpp files to use the C++ compiler in stead of the C compiler where required.
In order to update it, follow below.
If you are on Windows, just run these on command prompt or powershell
Update the package list: mingw-get update
After updating the package list, run: mingw-get upgrade
Source: How to update GCC in MinGW on Windows?
This problem was solved for me as I installed codeblocks with mingw compiler then I copied the mingw folder from codeblocks to C drive and added
C\mingw\bin to the environment variables.
If you try to compile and see a message like, "fatal error: stddef.h: No such file or directory", the error is because your gcc-core and gcc-g++ packages are not of the same version. Rerun the Cygwin install and make sure that you select the highest numbered versions of gcc-core and gcc-g++.
After installing the C++ compiler with MinGW I encountered this problem as well. Apparently, you have to also install mingw32-base. Go to C:/MinGW/bin/mingw-get.exe (my path) and check it for installation at the Basic Setup tab.
I tried to build cgal-python and had the following errors (just a snippet):
In file included from /opt/local/include/boost/config.hpp:40,
from /opt/local/include/CGAL/config.h:37,
from /opt/local/include/CGAL/basic.h:28,
from Kernel_module.cpp:21,
from All_files_at_once.cpp:1:
/opt/local/include/boost/config/select_stdlib_config.hpp:17:19: error: cstddef: No such file or directory
Where are the header files of standard C library on MacOS Lion?
I upgraded XCode to 4.1 and now the above errors are gone.