Building Boost library on windows 8 using CodeBlocks - c++

I am trying to install and build Boost libraries on my laptop which runs Windows 8 and CodeBlocks. I am following the steps described in most of the guides that I found on web to no extent.
I downloaded boost 1.57.0 from boost.org and I extracted the library to C:/. From the root library, I run bootstrap.bat gcc and I keep obtaining a Failed to build Boost.Build engine.
The following is the content of bootstrap.log
###
### Using 'gcc' toolset.
###
c:\Boost\boost_1_57_0\tools\build\src\engine>if exist bootstrap rd /S /Q bootstrap
c:\Boost\boost_1_57_0\tools\build\src\engine>md bootstrap
c:\Boost\boost_1_57_0\tools\build\src\engine>gcc -DNT -o bootstrap\jam0.exe command.c compile.c constants.c debug.c execcmd.c execnt.c filent.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathnt.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c class.c cwd.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c
I cannot understand what is causing the error since the .log doesn't say anything about it. Do you have any idea?

Related

scons can't find #include files

I am following this tutorial on setting up gdnative.
I have installed c++ tools through visual studio, python 3.2, and scons 4.1.0
I am stuck trying to get scons to build this gdnative example. The issue I'm having appears to be scons not being able to find #include files. I have tried using a relative file paths to a sub directory godot-cpp/, relative paths to a sibling directory ../godot-cpp/, and using a full path to the sibling directory E:/Projects/Godot Projects/Units/godot-cpp/ but I am getting the same error every time. I have provided a screenshot to show the file structure. I am running scons from X64 Native Tools Command Prompt for VS 2019
Edit - have now also tried while running as administrator, same error
Top Left: The project I am trying to build and the cpp files I need to include in sibling directories.
Top Right: The contents of the project folder. The godot-cpp/ subdirectory is a copy of the folder of the same name from the Top Left.
Bottom Left: Contents of godot-cpp/
Bottom Right: Contents of godot-cpp/godot-headers. The highlighted file is the one it can't seem to find.
Relative path to sub directory:
E:\Projects\Godot Projects\Units\gdnative_cpp_example>scons platform=windows
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
cl /Fosrc\gdexample.obj /c src\gdexample.cpp /TP /nologo -DWIN32 -D_WIN32 -D_WINDOWS -W3 -GR -D_CRT_SECURE_NO_WARNINGS -EHsc -D_DEBUG -MDd /I. /Igodot-cpp\godot_headers /Igodot-cpp\include /Igodot-cpp\include\core /Igodot-cpp\include\gen /Isrc
gdexample.cpp
godot-cpp\include\core\Godot.hpp(7): fatal error C1083: Cannot open include file: 'gdnative_api_struct.gen.h': No such file or directory
scons: *** [src\gdexample.obj] Error 2
scons: building terminated because of errors.
Relative path to sibling directory:
E:\Projects\Godot Projects\Units\gdnative_cpp_example>scons platform=windows
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
cl /Fosrc\gdexample.obj /c src\gdexample.cpp /TP /nologo -DWIN32 -D_WIN32 -D_WINDOWS -W3 -GR -D_CRT_SECURE_NO_WARNINGS -EHsc -D_DEBUG -MDd /I. "/IE:\Projects\Godot Projects\Units\godot-cpp\godot_headers" "/IE:\Projects\Godot Projects\Units\godot-cpp\include" "/IE:\Projects\Godot Projects\Units\godot-cpp\include\core" "/IE:\Projects\Godot Projects\Units\godot-cpp\include\gen" /Isrc
gdexample.cpp
E:\Projects\Godot Projects\Units\godot-cpp\include\core\Godot.hpp(7): fatal error C1083: Cannot open include file: 'gdnative_api_struct.gen.h': No such file or directory
scons: *** [src\gdexample.obj] Error 2
scons: building terminated because of errors.
Full path to sibling directory:
E:\Projects\Godot Projects\Units\gdnative_cpp_example>scons platform=windows
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
cl /Fosrc\gdexample.obj /c src\gdexample.cpp /TP /nologo -DWIN32 -D_WIN32 -D_WINDOWS -W3 -GR -D_CRT_SECURE_NO_WARNINGS -EHsc -D_DEBUG -MDd /I. "/IE:\Projects\Godot Projects\Units\godot-cpp\godot_headers" "/IE:\Projects\Godot Projects\Units\godot-cpp\include" "/IE:\Projects\Godot Projects\Units\godot-cpp\include\core" "/IE:\Projects\Godot Projects\Units\godot-cpp\include\gen" /Isrc
gdexample.cpp
E:\Projects\Godot Projects\Units\godot-cpp\include\core\Godot.hpp(7): fatal error C1083: Cannot open include file: 'gdnative_api_struct.gen.h': No such file or directory
scons: *** [src\gdexample.obj] Error 2
scons: building terminated because of errors.
It's getting stuck following the include statement from Godot.hpp line 7 to gdnative_api_struct.gen.h. It looks like it can resolve the path just fine but it can't open them for some reason.
SConstruct file - Came with the project I'm trying to build. Only modification was changing the paths to godot-cpp/ and godot-cpp/headers/.
#!python
import os, subprocess
opts = Variables([], ARGUMENTS)
# Gets the standard flags CC, CCX, etc.
env = DefaultEnvironment()
# Define our options
opts.Add(EnumVariable('target', "Compilation target", 'debug', ['d', 'debug', 'r', 'release']))
opts.Add(EnumVariable('platform', "Compilation platform", '', ['', 'windows', 'x11', 'linux', 'osx']))
opts.Add(EnumVariable('p', "Compilation target, alias for 'platform'", '', ['', 'windows', 'x11', 'linux', 'osx']))
opts.Add(BoolVariable('use_llvm', "Use the LLVM / Clang compiler", 'no'))
opts.Add(PathVariable('target_path', 'The path where the lib is installed.', 'demo/bin/'))
opts.Add(PathVariable('target_name', 'The library name.', 'libgdexample', PathVariable.PathAccept))
# Local dependency paths, adapt them to your setup
# These next two lines are where I changed the paths <-----------------
godot_headers_path = "../godot-cpp/godot_headers/"
cpp_bindings_path = "../godot-cpp/"
cpp_library = "libgodot-cpp"
# only support 64 at this time..
bits = 64
# Updates the environment with the option variables.
opts.Update(env)
# Process some arguments
if env['use_llvm']:
env['CC'] = 'clang'
env['CXX'] = 'clang++'
if env['p'] != '':
env['platform'] = env['p']
if env['platform'] == '':
print("No valid target platform selected.")
quit();
# Check our platform specifics
# I'm using windows so I cut the other options for readability
if env['platform'] == "windows":
env['target_path'] += 'win64/'
cpp_library += '.windows'
# This makes sure to keep the session environment variables on windows,
# that way you can run scons in a vs 2017 prompt and it will find all the required tools
env.Append(ENV = os.environ)
env.Append(CCFLAGS = ['-DWIN32', '-D_WIN32', '-D_WINDOWS', '-W3', '-GR', '-D_CRT_SECURE_NO_WARNINGS'])
if env['target'] in ('debug', 'd'):
env.Append(CCFLAGS = ['-EHsc', '-D_DEBUG', '-MDd'])
else:
env.Append(CCFLAGS = ['-O2', '-EHsc', '-DNDEBUG', '-MD'])
if env['target'] in ('debug', 'd'):
cpp_library += '.debug'
else:
cpp_library += '.release'
cpp_library += '.' + str(bits)
# make sure our binding library is properly includes
env.Append(CPPPATH=['.', godot_headers_path, cpp_bindings_path + 'include/', cpp_bindings_path + 'include/core/', cpp_bindings_path + 'include/gen/'])
env.Append(LIBPATH=[cpp_bindings_path + 'bin/'])
env.Append(LIBS=[cpp_library])
# tweak this if you want to use different folders, or more folders, to store your source code in.
env.Append(CPPPATH=['src/'])
sources = Glob('src/*.cpp')
library = env.SharedLibrary(target=env['target_path'] + env['target_name'], source=sources)
Default(library)
# Generates help for the -h scons option.
Help(opts.GenerateHelpText(env))
I had this exact same problem today. On the line you changed in your SConstruct file you reference the godot headers directory (the one which contains gdnative_api_struct.gen.h) as godot_headers, but in your file system this folder is called godot-headers (- not _). Because of this scons cannot find the file. Changing the directory's name in the file system to godot_headers solved the problem for me.

configure: error: C++ compiler cannot create executables on macOS

I am trying to run the IPHREEQC section1.
I am using a macOS Catalina Version 10.15.7 Unfortunately, every time I enter ./configure I have the error below:
[IPHREEQC][1]bob#LIBRLTMCKM0FWJ1W iphreeqc-3.6.2-15100 % ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for g++... g++
checking whether the C++ compiler works... no
configure: error: in `/Users/bob/Desktop/Work/iphreeqc-3.6.2-15100':
configure: error: C++ compiler cannot create executables
See `config.log' for more details
The 'config.log' section says
*This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by IPhreeqc configure 3.6.2-15100, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure
## --------- ##
## Platform. ##
## --------- ##
hostname = LIBRLTMCKM0FWJ1W
uname -m = x86_64
uname -r = 19.6.0
uname -s = Darwin
uname -v = Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64
/usr/bin/uname -p = i386
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = Mach kernel version:
Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64
Kernel configured for up to 4 processors.
2 processors are physically available.
4 processors are logically available.
Processor type: x86_64h (Intel x86-64h Haswell)
Processors active: 0 1 2 3
Primary memory available: 8.00 gigabytes
Default processor set: 365 tasks, 1435 threads, 4 processors
Load average: 3.31, Mach factor: 1.55
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/sbin
PATH: /sbin
PATH: /opt/X11/bin
PATH: /Library/Apple/usr/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2581: checking for a BSD-compatible install
configure:2649: result: /usr/bin/install -c
configure:2660: checking whether build environment is sane
configure:2715: result: yes
configure:2866: checking for a thread-safe mkdir -p
configure:2905: result: config/install-sh -c -d
configure:2912: checking for gawk
configure:2942: result: no
configure:2912: checking for mawk
configure:2942: result: no
configure:2912: checking for nawk
configure:2942: result: no
configure:2912: checking for awk
configure:2928: found /usr/bin/awk
configure:2939: result: awk
configure:2950: checking whether make sets $(MAKE)
configure:2972: result: yes
configure:3001: checking whether make supports nested variables
configure:3018: result: yes
configure:3158: checking whether make supports nested variables
configure:3175: result: yes
configure:3253: checking for g++
configure:3269: found /usr/local/bin/g++
configure:3280: result: g++
configure:3307: checking for C++ compiler version
configure:3316: g++ --version >&5
g++ (GCC) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:3327: $? = 0
configure:3316: g++ -v >&5
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin19/9.2.0/lto-wrapper
Target: x86_64-apple-darwin19
Configured with: ../gcc-9.2.0/configure --build=x86_64-apple-darwin19 --disable-nls --enable-checking=release --with-system-zlib --disable-multilib --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk --enable-languages=c,c++,fortran --with-gmp=/usr/local --with-mpc=/usr/local --with-mpfr=/usr/local
Thread model: posix
gcc version 9.2.0 (GCC)
configure:3327: $? = 0
configure:3316: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:3327: $? = 1
configure:3316: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'; did you mean '--version'?
g++: fatal error: no input files
compilation terminated.
configure:3327: $? = 1
configure:3347: checking whether the C++ compiler works
configure:3369: g++ conftest.cpp >&5
ld: library not found for -lSystem
collect2: error: ld returned 1 exit status
configure:3373: $? = 1
configure:3411: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "IPhreeqc"
| #define PACKAGE_TARNAME "iphreeqc"
| #define PACKAGE_VERSION "3.6.2-15100"
| #define PACKAGE_STRING "IPhreeqc 3.6.2-15100"
| #define PACKAGE_BUGREPORT "charlton#usgs.gov"
| #define PACKAGE_URL ""
| #define PACKAGE "iphreeqc"
| #define VERSION "3.6.2-15100"
| #define SWIG_SHARED_OBJ 1
| #define USE_PHRQ_ALLOC 1
| #define NDEBUG 1
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3416: error: in `/Users/bob/Desktop/Work/iphreeqc-3.6.2-15100':
configure:3418: error: C++ compiler cannot create executables
See `config.log' for more details
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_FCFLAGS_set=
ac_cv_env_FCFLAGS_value=
ac_cv_env_FC_set=
ac_cv_env_FC_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=awk
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_make_make_set=yes
am_cv_make_support_nested_variables=yes
## ----------------- ##
## Output variables. ##
## ----------------- ##
ACLOCAL='${SHELL} /Users/bob/Desktop/Work/iphreeqc-3.6.2-15100/config/missing aclocal-1.15'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='0'
AM_V='$(V)'
AR=''
AUTOCONF='${SHELL} /Users/bob/Desktop/Work/iphreeqc-3.6.2-15100/config/missing autoconf'
AUTOHEADER='${SHELL} /Users/bob/Desktop/Work/iphreeqc-3.6.2-15100/config/missing autoheader'
AUTOMAKE='${SHELL} /Users/bob/Desktop/Work/iphreeqc-3.6.2-15100/config/missing automake-1.15'
AWK='awk'
BUILD_FORTRAN_FALSE=''
BUILD_FORTRAN_TRUE=''
CC=''
CCDEPMODE=''
CFLAGS=''
CPP=''
CPPFLAGS=''
CXX='g++'
CXXCPP=''
CXXDEPMODE=''
CXXFLAGS=''
CYGPATH_W='echo'
DEFS=''
DEPDIR=''
DLLTOOL=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C='\c'
ECHO_N=''
ECHO_T=''
EGREP=''
EXEEXT=''
F77=''
FC=''
FCFLAGS=''
FCLIBS=''
FC_MODEXT=''
FFLAGS=''
FGREP=''
FORTRAN_MODULE_FALSE=''
FORTRAN_MODULE_TRUE=''
GREP=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD=''
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL=''
LIPO=''
LN_S=''
LTLIBOBJS=''
LT_SYS_LIBRARY_PATH=''
MAKEINFO='${SHELL} /Users/bob/Desktop/Work/iphreeqc-3.6.2-15100/config/missing makeinfo'
MANIFEST_TOOL=''
MKDIR_P='config/install-sh -c -d'
NM=''
NMEDIT=''
OBJDUMP=''
OBJEXT=''
OTOOL64=''
OTOOL=''
PACKAGE='iphreeqc'
PACKAGE_BUGREPORT='charlton#usgs.gov'
PACKAGE_NAME='IPhreeqc'
PACKAGE_STRING='IPhreeqc 3.6.2-15100'
PACKAGE_TARNAME='iphreeqc'
PACKAGE_URL=''
PACKAGE_VERSION='3.6.2-15100'
PATH_SEPARATOR=':'
POW_LIB=''
RANLIB=''
SED=''
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
VERSION='3.6.2-15100'
ac_ct_AR=''
ac_ct_CC=''
ac_ct_CXX='g++'
ac_ct_DUMPBIN=''
ac_ct_FC=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE=''
am__fastdepCXX_TRUE=''
am__include=''
am__isrc=''
am__leading_dot='.'
am__nodep=''
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bindir='${exec_prefix}/bin'
build=''
build_alias=''
build_cpu=''
build_os=''
build_vendor=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host=''
host_alias=''
host_cpu=''
host_os=''
host_vendor=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /Users/bob/Desktop/Work/iphreeqc-3.6.2-15100/config/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='NONE'
program_transform_name='s,x,x,'
psdir='${docdir}'
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME "IPhreeqc"
#define PACKAGE_TARNAME "iphreeqc"
#define PACKAGE_VERSION "3.6.2-15100"
#define PACKAGE_STRING "IPhreeqc 3.6.2-15100"
#define PACKAGE_BUGREPORT "charlton#usgs.gov"
#define PACKAGE_URL ""
#define PACKAGE "iphreeqc"
#define VERSION "3.6.2-15100"
#define SWIG_SHARED_OBJ 1
#define USE_PHRQ_ALLOC 1
#define NDEBUG 1
configure: exit 77
How do I fix this error?
The issue arises from the ./configure script being confused about which g++ to use: the GNU g++ downloaded from Sourceforge and installed in /usr/local/bin, and Apple's XCode g++ located in /usr/bin. In my case, what did the trick was temporarily removing /usr/local/bin from my $PATH variable by doing:
echo $PATH
to see what was in it (/usr/local/bin, /usr/bin, and a number of other folders), then
export PATH=/usr/bin:[same other folders as in the output to the echo command, except /usr/local/bin]
and running ./configure. That basically told the ./configure script to ignore the folder /usr/local/bin where the Sourceforge GNU g++ was installed and only use Apple's XCode g++, located in /usr/bin.
I figured it out by looking at config.log in detail. Irrespective of whether I was linking the Sourceforge or Apple g++ to the "g++" command (via alias g++=...), the ./configure script was finding by default the Sourceforge g++ and trying to run Apple commands on it, which I think is why the script said the C++ compiler was not working. By ignoring /usr/local/bin, it found by default the Apple g++ instead.

Failed to build Boost.Build engine

I was trying to build boost (1_65_0) engine by writing 'bootstrap' to visual studio command prompt 2010 and I go this error.. any suggestions?
here is a part of the bootstrap.log :
###
### Using 'vc10' toolset.
###
c:\boost_1_65_0\tools\build\src\engine>if exist bootstrap rd /S /Q bootstrap
c:\boost_1_65_0\tools\build\src\engine>md bootstrap
c:\boost_1_65_0\tools\build\src\engine>cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib /Febootstrap\jam0 command.c compile.c constants.c debug.c execcmd.c execnt.c filent.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathnt.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c class.c cwd.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c
command.c
compile.c
variable.c
modules.c
strings.c
strings.c(195) : error C2143: syntax error : missing ';' before 'type'
strings.c(196) : error C2065: 'p' : undeclared identifier
strings.c(196) : error C2065: 'p' : undeclared identifier
strings.c(196) : warning C4047: '>=' : 'int' differs in levels of indirection from 'char *'
strings.c(196) : error C2065: 'p' : undeclared identifier
strings.c(196) : error C2100: illegal indirection
strings.c(196) : error C2065: 'p' : undeclared identifier
strings.c(196) : error C2100: illegal indirection
strings.c(196) : error C2065: 'p' : undeclared identifier
strings.c(196) : error C2100: illegal indirection
strings.c(196) : error C2106: '=' :

std::terminate() linker error on a small clang project

I'm getting the following error on a project that links with clang (verbose output):
clang++ `/usr/local/Cellar/llvm/3.6.2/bin/llvm-config --cxxflags --ldflags --libs --system-libs` -lc++ -fno-rtti -o gen -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnalysis -lclangARCMigrate -lclangRewriteFrontend -lclangEdit -lclangAST -lclangLex -lclangBasic -I /usr/local/Cellar/llvm/3.6.2/include src/main.cpp -v
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0
Thread model: posix
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.10.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name main.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 253.9 -v -dwarf-column-info -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.2 -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -I /usr/local/Cellar/llvm/3.6.2/include -I /usr/local/Cellar/llvm/3.6.2/include -stdlib=libc++ -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -pedantic -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /Users/samvv/Projects/ffi-enhanced/xfi-gen -ferror-limit 19 -fmessage-length 142 -fvisibility-inlines-hidden -stack-protector 1 -mstackrealign -fblocks -fno-rtti -fobjc-runtime=macosx-10.10.0 -fencode-extended-block-signature -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/9g/8c11l8090p524v5r7873yghc0000gn/T/main-918e82.o -x c++ src/main.cpp
clang -cc1 version 7.0.2 based upon LLVM 3.7.0svn default target x86_64-apple-darwin14.5.0
ignoring nonexistent directory "/usr/include/c++/v1"
ignoring duplicate directory "/usr/local/Cellar/llvm/3.6.2/include"
> #include "..." search starts here:
> #include <...> search starts here:
/usr/local/Cellar/llvm/3.6.2/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1
/usr/local/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.2/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
/usr/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
End of search list.
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.10.0 -o gen -L/usr/local/Cellar/llvm/3.6.2/lib -search_paths_first -headerpad_max_install_names -lLLVMLTO -lLLVMObjCARCOpts -lLLVMLinker -lLLVMBitWriter -lLLVMIRReader -lLLVMAsmParser -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMXCoreAsmPrinter -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSystemZAsmPrinter -lLLVMSparcDisassembler -lLLVMSparcCodeGen -lLLVMSparcAsmParser -lLLVMSparcDesc -lLLVMSparcInfo -lLLVMSparcAsmPrinter -lLLVMR600CodeGen -lLLVMipo -lLLVMVectorize -lLLVMR600AsmParser -lLLVMR600Desc -lLLVMR600Info -lLLVMR600AsmPrinter -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser -lLLVMPowerPCDesc -lLLVMPowerPCInfo -lLLVMPowerPCAsmPrinter -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMMSP430CodeGen -lLLVMMSP430Desc -lLLVMMSP430Info -lLLVMMSP430AsmPrinter -lLLVMMipsDisassembler -lLLVMMipsCodeGen -lLLVMMipsAsmParser -lLLVMMipsDesc -lLLVMMipsInfo -lLLVMMipsAsmPrinter -lLLVMHexagonDisassembler -lLLVMHexagonCodeGen -lLLVMHexagonDesc -lLLVMHexagonInfo -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMTableGen -lLLVMDebugInfo -lLLVMOption -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLineEditor -lLLVMInstrumentation -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMScalarOpts -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMBitReader -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMCore -lLLVMSupport -lcurses -lpthread -lz -lm -lc++ -lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnalysis -lclangARCMigrate -lclangRewriteFrontend -lclangEdit -lclangAST -lclangLex -lclangBasic /var/folders/9g/8c11l8090p524v5r7873yghc0000gn/T/main-918e82.o -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.2/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
"std::terminate()", referenced from:
___clang_call_terminate in main-918e82.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [all] Error 1
According to this question, linking with -lc++ should fix the issue, but in my case it doesn't. I've managed to reduce the issue down to this flag, which is added by llvm-config --ldflags:
-L/usr/local/Cellar/llvm/3.6.2/lib
Any idea why this flag is causing the error and how to fix it?
I found the problem: I was linking to non-default stdlibs using -L/usr/local/opt/llvm/lib/. By prepending -L/usr/lib, it made sure that OS X's default stdlib goes above the homebrewn version.

MSYS SDL-2.0 "C compiler cannot create executables"

I'm trying to use MSYS to create the MinGW SDL libraries from the latest SDL 2.0 Mercurial repository. (As of this posting.) I'm following this tutorial, and when I need to configure using MSYS I enter
$ ./configure --prefix=/mingw --enable-stdio-redirect=no
into MSYS. It sputters out the following:
configure: WARNING: Libtool does not cope well with whitespace in `pwd`
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
I'm using gcc version 2.95 (According to "gcc -v"), the latest MSYS/MSYS-dtk, and the latest SDL 2.0 Mercurial sources. Does anyone know why MSYS might be giving me this error, or has anybody successfully built MinGW binaries from the current SDL 2.0 sources?
EDIT: Here's the config.log file generated by ./config:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ ./configure --prefix=/mingw --enable-stdio-redirect=no
## --------- ##
## Platform. ##
## --------- ##
hostname = NFLODUDE
uname -m = i686
uname -r = 1.0.10(0.46/3/2)
uname -s = MINGW32_NT-6.1
uname -v = 2004-03-15 07:17
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: .
PATH: /usr/local/bin
PATH: /mingw/bin
PATH: /bin
PATH: /c/Python25/
PATH: /c/Program Files/Common Files/Microsoft Shared/Windows Live
PATH: /c/Program Files (x86)/Common Files/Microsoft Shared/Windows Live
PATH: /c/Program Files (x86)/Microsoft DirectX SDK (August 2007)/Utilities/Bin/x86
PATH: /c/Perl/site/bin
PATH: /c/Perl/bin
PATH: /c/Windows/system32
PATH: /c/Windows
PATH: /c/Windows/System32/Wbem
PATH: /c/Windows/System32/WindowsPowerShell/v1.0/
PATH: /c/Program Files/Dell/Dell Wireless WLAN Card
PATH: /c/Program Files (x86)/OpenLibraries/bin
PATH: /c/Program Files/Trend Micro/AMSP
PATH: /c/Program Files (x86)/MySQL/MySQL Server 5.5/bin
PATH: /c/Program Files (x86)/Java/jdk1.6.0_23/bin
PATH: /c/Program Files (x86)/Microsoft ASP.NET/ASP.NET Web Pages/v1.0/
PATH: /c/Program Files/MySQL/MySQL Server 5.5/bin
PATH: /c/Program Files (x86)/Microsoft SQL Server/100/Tools/Binn/
PATH: /c/Program Files/Microsoft SQL Server/100/Tools/Binn/
PATH: /c/Program Files/Microsoft SQL Server/100/DTS/Binn/
PATH: /c/Program Files (x86)/Java/jdk1.6.0_23/bin
PATH: /c/perl_op/bin
PATH: /c/Program Files (x86)/gtk2/bin
PATH: /c/Program Files (x86)/mlt/bin
PATH: /c/Program Files (x86)/OpenLibraries/bin
PATH: /c/Windows/SysWOW64
PATH: /c/Program Files (x86)/Windows Live/Shared
PATH: /c/Program Files (x86)/GtkSharp/2.12/bin
PATH: .
PATH: /c/Program Files (x86)/QuickTime/QTSystem/
PATH: /c/Program Files (x86)/Google/google_appengine
PATH: /c/Free Pascal Compiler/2.4.4/bin/i386-Win32
PATH: /c/Program Files (x86)/Heroku
PATH: /c/Program Files (x86)/git/bin
PATH: /c/Program Files (x86)/git/cmd
PATH: /c/PHP/
PATH: /c/PHP/ext
PATH: /c/Program Files (x86)/CMake 2.8/bin
PATH: /c/Users/Owner/Documents/Code Projects/Java Projects/LWJGL/lwjgl-2.8.3/native/windows
PATH: /c/Program Files/TortoiseGit/bin
PATH: /c/Program Files/TortoiseHg/
PATH: /c/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Bin
PATH: /c/Ruby193/bin
PATH: /c/Program Files (x86)/Java/jdk1.6.0_23/bin
PATH: /c/Program Files (x86)/g95/bin
PATH: /c/MinGW/bin
PATH: /c/Program Files (x86)/Nmap
PATH: /c/GNUstep/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2098: WARNING: Libtool does not cope well with whitespace in `pwd`
configure:2127: checking build system type
configure:2145: result: i686-pc-mingw32
configure:2167: checking host system type
configure:2182: result: i686-pc-mingw32
configure:2252: checking for gcc
configure:2268: found /c/Free Pascal Compiler/2.4.4/bin/i386-Win32/gcc
configure:2279: result: gcc
configure:2517: checking for C compiler version
configure:2524: gcc --version >&5
2.95
configure:2527: $? = 0
configure:2534: gcc -v >&5
Using builtin specs.
gcc version 2.95 19990728 (release)
configure:2537: $? = 0
configure:2544: gcc -V >&5
gcc.exe: argument to `-V' is missing
configure:2547: $? = 1
configure:2570: checking for C compiler default output file name
configure:2597: gcc conftest.c >&5
Usage: cpp [switches] input output
Switches:
-include <file> Include the contents of <file> before other files
-imacros <file> Accept definition of marcos in <file>
-iprefix <path> Specify <path> as a prefix for next two options
-iwithprefix <dir> Add <dir> to the end of the system include paths
-iwithprefixbefore <dir> Add <dir> to the end of the main include paths
-isystem <dir> Add <dir> to the start of the system include paths
-idirafter <dir> Add <dir> to the end of the system include paths
-I <dir> Add <dir> to the end of the main include paths
-nostdinc Do not search the system include directories
-nostdinc++ Do not search the system include directories for C++
-o <file> Put output into <file>
-pedantic Issue all warnings demanded by strict ANSI C
-traditional Follow K&R pre-processor behaviour
-trigraphs Support ANSI C trigraphs
-lang-c Assume that the input sources are in C
-lang-c89 Assume that the input is C89; deprecated
-lang-c++ Assume that the input sources are in C++
-lang-objc Assume that the input sources are in ObjectiveC
-lang-objc++ Assume that the input sources are in ObjectiveC++
-lang-asm Assume that the input sources are in assembler
-lang-chill Assume that the input sources are in Chill
-std=<std name> Specify the conformance standard; one of:
gnu89, gnu9x, c89, c9x, iso9899:1990,
iso9899:199409, iso9899:199x
-+ Allow parsing of C++ style features
-w Inhibit warning messages
-Wtrigraphs Warn if trigraphs are encountered
-Wno-trigraphs Do not warn about trigraphs
-Wcomment{s} Warn if one comment starts inside another
-Wno-comment{s} Do not warn about comments
-Wtraditional Warn if a macro argument is/would be turned into
a string if -traditional is specified
-Wno-traditional Do not warn about stringification
-Wundef Warn if an undefined macro is used by #if
-Wno-undef Do not warn about testing undefined macros
-Wimport Warn about the use of the #import directive
-Wno-import Do not warn about the use of #import
-Werror Treat all warnings as errors
-Wno-error Do not treat warnings as errors
-Wall Enable all preprocessor warnings
-M Generate make dependencies
-MM As -M, but ignore system header files
-MD As -M, but put output in a .d file
-MMD As -MD, but ignore system header files
-MG Treat missing header file as generated files
-g Include #define and #undef directives in the output
-D<macro> Define a <macro> with string '1' as its value
-D<macro>=<val> Define a <macro> with <val> as its value
-A<question> (<answer>) Assert the <answer> to <question>
-U<macro> Undefine <macro>
-u or -undef Do not predefine any macros
-v Display the version number
-H Print the name of header files as they are used
-C Do not discard comments
-dM Display a list of macro definitions active at end
-dD Preserve macro definitions in output
-dN As -dD except that only the names are preserved
-dI Include #include directives in the output
-ifoutput Describe skipped code blocks in output
-P Do not generate #line directives
-$ Do not include '$' in identifiers
-remap Remap file names when including files.
-h or --help Display this information
cpp: Too many arguments
configure:2600: $? = 1
configure:2638: result:
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define _GNU_SOURCE 1
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:2645: error: C compiler cannot create executables
See `config.log' for more details.
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=i686-pc-mingw32
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_XMKMF_set=
ac_cv_env_XMKMF_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=i686-pc-mingw32
ac_cv_prog_ac_ct_CC=gcc
## ----------------- ##
## Output variables. ##
## ----------------- ##
ALLOCA=''
ALSA_CFLAGS=''
ALSA_LIBS=''
AR=''
ARTSCONFIG=''
AS=''
BUILD_CFLAGS=''
BUILD_LDFLAGS=''
CC='gcc'
CFLAGS=''
CPP=''
CPPFLAGS=''
CXX=''
CXXCPP=''
CXXFLAGS=''
DEFS=''
DIRECTFBCONFIG=''
DLLTOOL=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
ENABLE_SHARED_FALSE=''
ENABLE_SHARED_TRUE=''
ENABLE_STATIC_FALSE=''
ENABLE_STATIC_TRUE=''
ESD_CFLAGS=''
ESD_CONFIG=''
ESD_LIBS=''
EXEEXT=''
EXTRA_CFLAGS=''
EXTRA_LDFLAGS=''
FGREP=''
GREP=''
INCLUDE=''
INSTALL_DATA=''
INSTALL_PROGRAM=''
INSTALL_SCRIPT=''
LD=''
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL=''
LIPO=''
LN_S=''
LTLIBOBJS=''
LT_AGE=''
LT_CURRENT=''
LT_RELEASE=''
LT_REVISION=''
NM=''
NMEDIT=''
OBJDUMP=''
OBJECTS=''
OBJEXT=''
OTOOL64=''
OTOOL=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PKG_CONFIG=''
POW_LIB=''
RANLIB=''
SDLMAIN_OBJECTS=''
SDL_BINARY_AGE='0'
SDL_CFLAGS=''
SDL_INTERFACE_AGE='0'
SDL_LIBS=''
SDL_MAJOR_VERSION='2'
SDL_MICRO_VERSION='0'
SDL_MINOR_VERSION='0'
SDL_RLD_FLAGS=''
SDL_STATIC_LIBS=''
SDL_VERSION='2.0.0'
SED=''
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
VERSION_OBJECTS=''
WINDRES=''
XMKMF=''
X_CFLAGS=''
X_EXTRA_LIBS=''
X_LIBS=''
X_PRE_LIBS=''
ac_aux_dir='build-scripts'
ac_ct_CC='gcc'
ac_ct_CXX=''
ac_ct_DUMPBIN=''
bindir='${exec_prefix}/bin'
build='i686-pc-mingw32'
build_alias=''
build_cpu='i686'
build_os='mingw32'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='NONE'
host='i686-pc-mingw32'
host_alias=''
host_cpu='i686'
host_os='mingw32'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
lt_ECHO='echo'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/mingw'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define _GNU_SOURCE 1
configure: exit 77
I really don't know what to make of config.log, though...
Short answer: your gcc is not ready, needs some dependencies.
Long answer, troubleshooting guide:
Create a simple C file, like this:
main() {}
Try to run:
gcc simple.c
You should get the same message, about creating executables. Now make a verbose gcc call, adding -v switch. You should now know what is the command it cannot run. Maybe it is as? Maybe you need binutils? Maybe you need some library.