Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "misc.h"
- int main(){
- say_hello();
- return 0;
- }
- #ifndef _MISC_H_
- #define _MISC_H_
- /**
- * brief Prints hello to stdout
- */
- void say_hello();
- #endif /* _MISC_H_ */
- /* C++ implementation */
- #include <iostream>
- using namespace std;
- void cpp_say_hello(){
- cout << "Hello world!" << endl;
- }
- /* C wrapper */
- extern "C"{
- #include "misc.h"
- void say_hello(){
- cpp_say_hello();
- }
- }
- CFLAGS += -lstdc++
- CXXFLAGS += -c
- hello_world_mix: misc.o main.c
- $(CC) $(CFLAGS) $^ -o $@
- misc.o: misc.cpp
- $(CXX) $(CXXFLAGS) $^ -o $@
- clean:
- rm -f *.o
- rm -f *~
- CC=arm-none-eabi-gcc CXX=arm-none-eabi-g++ CFLAGS=--specs=nosys.specs make
- arm-none-eabi-gcc --specs=nosys.specs -lstdc++ misc.o main.c -o hello_world_mix
- /usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: misc.o: in function `cpp_say_hello()':
- misc.cpp:(.text+0x34): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
- /usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: misc.cpp:(.text+0x44): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
- /usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: misc.cpp:(.text+0x5c): undefined reference to `std::cout'
- /usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: misc.cpp:(.text+0x60): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
- /usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: misc.o: in function `__static_initialization_and_destruction_0(int, int)':
- misc.cpp:(.text+0xb4): undefined reference to `std::ios_base::Init::Init()'
- /usr/lib/gcc/arm-none-eabi/8.2.0/../../../../arm-none-eabi/bin/ld: misc.cpp:(.text+0xe4): undefined reference to `std::ios_base::Init::~Init()'
- collect2: error: ld returned 1 exit status
- make: *** [Makefile:5: hello_world_mix] Error 1
- hello_world_mix: misc.o main.o
- $(CC) $(CFLAGS) $^ -o $@
- main.o: main.c
- $(CC) -c $(CFLAGS) $^ -o $@
- misc.o: misc.cpp
- $(CXX) -c $(CXXFLAGS) $^ -o $@
- clean:
- rm -f *.o
- rm -f *~
Add Comment
Please, Sign In to add comment