RobbeDGreef / carbon-ir

The carbon intermediate representation language
MIT License
36 stars 3 forks source link

build failure for carbon-ir #2

Closed clue-arch closed 3 years ago

clue-arch commented 3 years ago

Hello. Having a problem with building carbon-ir from source. Here is the result from my recent attempt at building. How can I solve this problem?

System Information Ubuntu 18.04 LTS gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) GNU Make 4.1

Build

git clone https://github.com/RobbeDGreef/carbon-ir.git
cd carbon-ir/src
../build.sh

log developer@developer-x:~/carbon-ir/src$ ../build.sh ../build.sh: line 1: cd: build: No such file or directory -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done [Debugging mode enabled] -- Configuring done -- Generating done -- Build files have been written to: /home/developer/carbon-ir/src Scanning dependencies of target carbon-ir [ 4%] Building CXX object CMakeFiles/carbon-ir.dir/CMakeFiles/3.19.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o [ 8%] Building CXX object CMakeFiles/carbon-ir.dir/api/bindings.cpp.o /home/developer/carbon-ir/src/api/bindings.cpp:9:27: warning: ISO C++ does not allow C99 designated initializers [-Wpedantic] struct ctype i64_type = {.byte_size = 8, .ptr = 0, .is_float = 0}; ^ /home/developer/carbon-ir/src/api/bindings.cpp:9:42: warning: ISO C++ does not allow C99 designated initializers [-Wpedantic] struct ctype __i64_type = {.byte_size = 8, .ptr = 0, .is_float = 0}; ^ /home/developer/carbon-ir/src/api/bindings.cpp:9:52: warning: ISO C++ does not allow C99 designated initializers [-Wpedantic] struct ctype i64_type = {.byte_size = 8, .ptr = 0, .is_float = 0}; ^ /home/developer/carbon-ir/src/api/bindings.cpp:10:27: warning: ISO C++ does not allow C99 designated initializers [-Wpedantic] struct ctype __i32_type = {.byte_size = 4, .ptr = 0, .is_float = 0}; ^ [ 13%] Building CXX object CMakeFiles/carbon-ir.dir/arch/aarch64/codegen.cpp.o [ 17%] Building CXX object CMakeFiles/carbon-ir.dir/arch/aarch64/generator.cpp.o [ 21%] Building CXX object CMakeFiles/carbon-ir.dir/arch/i386/codegen.cpp.o [ 26%] Building CXX object CMakeFiles/carbon-ir.dir/arch/i386/generator.cpp.o [ 30%] Building CXX object CMakeFiles/carbon-ir.dir/arch/i386/optimizer.cpp.o [ 34%] Building CXX object CMakeFiles/carbon-ir.dir/attributes.cpp.o [ 39%] Building CXX object CMakeFiles/carbon-ir.dir/errsys.cpp.o [ 43%] Building CXX object CMakeFiles/carbon-ir.dir/function.cpp.o [ 47%] Building CXX object CMakeFiles/carbon-ir.dir/generator/generate.cpp.o [ 52%] Building CXX object CMakeFiles/carbon-ir.dir/generator/generator.cpp.o [ 56%] Building CXX object CMakeFiles/carbon-ir.dir/machine.cpp.o [ 60%] Building CXX object CMakeFiles/carbon-ir.dir/main.cpp.o /home/developer/carbon-ir/src/main.cpp: In function ‘int main(int, char)’: /home/developer/carbon-ir/src/main.cpp:150:12: warning: deleting object of polymorphic class type ‘Generator’ which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] delete generator; ^~~~~ /home/developer/carbon-ir/src/main.cpp:151:12: warning: deleting object of polymorphic class type ‘Optimizer’ which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] delete optimizer; ^~~~~ [ 65%] Building CXX object CMakeFiles/carbon-ir.dir/oplist.cpp.o [ 69%] Building CXX object CMakeFiles/carbon-ir.dir/optimizer/optimizer.cpp.o [ 73%] Building CXX object CMakeFiles/carbon-ir.dir/optimizer/regassign.cpp.o [ 78%] Building CXX object CMakeFiles/carbon-ir.dir/parser.cpp.o [ 82%] Building CXX object CMakeFiles/carbon-ir.dir/register.cpp.o [ 86%] Building CXX object CMakeFiles/carbon-ir.dir/scanner.cpp.o [ 91%] Building CXX object CMakeFiles/carbon-ir.dir/token.cpp.o [ 95%] Building CXX object CMakeFiles/carbon-ir.dir/type.cpp.o [100%] Linking CXX executable carbon-ir CMakeFiles/carbon-ir.dir/main.cpp.o: In function main': /home/developer/carbon-ir/src/main.cpp:40: multiple definition ofmain' CMakeFiles/carbon-ir.dir/CMakeFiles/3.19.2/CompilerIdCXX/CMakeCXXCompilerId.cpp.o:/home/developer/carbon-ir/src/CMakeFiles/3.19.2/CompilerIdCXX/CMakeCXXCompilerId.cpp:658: first defined here collect2: error: ld returned 1 exit status CMakeFiles/carbon-ir.dir/build.make:417: recipe for target 'carbon-ir' failed make[2]: ** [carbon-ir] Error 1 CMakeFiles/Makefile2:94: recipe for target 'CMakeFiles/carbon-ir.dir/all' failed make[1]: [CMakeFiles/carbon-ir.dir/all] Error 2 Makefile:102: recipe for target 'all' failed make: *** [all] Error 2 mv: cannot stat 'carbon-ir': No such file or directory

RobbeDGreef commented 3 years ago

the build.sh script is intended to run inside the main carbon-ir/ folder not the carbon-ir/src/ folder where you ran it. I did however notice another small mistake in my build script, it does not create the build/ folder for you so I will fix that in a minute. For now remove all the cmake and make files the build script made in the src/ directory with rm -rd CMakeCache.txt CMakeFiles/ cmake_install.cmake Makefile, create a 'build' folder inside the main directory and run ./build.sh inside the main directory as well. Hope that helps. If you have any other questions don't hesitate to ask.