Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undefined reference issues when compiling gs code. #24

Open
whstudio123 opened this issue Jan 29, 2023 · 14 comments
Open

Undefined reference issues when compiling gs code. #24

whstudio123 opened this issue Jan 29, 2023 · 14 comments

Comments

@whstudio123
Copy link
Contributor

whstudio123 commented Jan 29, 2023

  • I could not compile the gs code.I have tried my best to compile them and tried to modify the Makefile but nothing worked.there is some screenshots when i tried to compile :
g++ -o gs "-L/usr/lib/aarch64-linux-gnu" "-L/usr/lib" "-L/opt/vc/lib" -lstdc++ -lm -pthread -lz -lrt -lfreetype -lSDL2 -lturbojpeg -lpcap -lGLESv2 -lpigpio  .o/src/main.o .o/src/droid_sans_font.o .o/src/HUD.o .o/src/imgui_impl_opengl3.o .o/src/PI_HAL.o .o/src/Comms.o .o/src/Video_Decoder.o .o/src/utils/radiotap/radiotap.o .o/src/imgui/imgui_impl_sdl.o .o/src/imgui/imgui_demo.o .o/src/imgui/imgui_draw.o .o/src/imgui/imgui.o .o/src/imgui/misc/freetype/imgui_freetype.o .o/../components/common/crc.o .o/../components/common/fec.o .o/src/fmt/format.o .o/src/fmt/os.o
/usr/bin/ld: .o/src/main.o: in function `comms_thread_proc()':
main.cpp:(.text+0xb14): undefined reference to `gpioWrite'
/usr/bin/ld: main.cpp:(.text+0xd10): undefined reference to `gpioWrite'
/usr/bin/ld: .o/src/main.o: in function `main':
main.cpp:(.text.startup+0x94): undefined reference to `gpioSetMode'
/usr/bin/ld: .o/src/Comms.o: in function `Comms::prepare_filter(Comms::PCap&)':
Comms.cpp:(.text+0x34e0): undefined reference to `pcap_datalink'
/usr/bin/ld: Comms.cpp:(.text+0x3620): undefined reference to `pcap_compile'
/usr/bin/ld: Comms.cpp:(.text+0x3634): undefined reference to `pcap_setfilter'
/usr/bin/ld: Comms.cpp:(.text+0x3644): undefined reference to `pcap_freecode'
/usr/bin/ld: Comms.cpp:(.text+0x364c): undefined reference to `pcap_get_selectable_fd'
/usr/bin/ld: Comms.cpp:(.text+0x36f4): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x375c): undefined reference to `pcap_freecode'
/usr/bin/ld: Comms.cpp:(.text+0x3768): undefined reference to `pcap_geterr'
/usr/bin/ld: .o/src/Comms.o: in function `Comms::prepare_pcap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Comms::PCap&)':
Comms.cpp:(.text+0x3b38): undefined reference to `pcap_create'
/usr/bin/ld: Comms.cpp:(.text+0x3b48): undefined reference to `pcap_set_snaplen'
/usr/bin/ld: Comms.cpp:(.text+0x3b58): undefined reference to `pcap_set_promisc'
/usr/bin/ld: Comms.cpp:(.text+0x3b68): undefined reference to `pcap_set_rfmon'
/usr/bin/ld: Comms.cpp:(.text+0x3b78): undefined reference to `pcap_set_timeout'
/usr/bin/ld: Comms.cpp:(.text+0x3b88): undefined reference to `pcap_set_immediate_mode'
/usr/bin/ld: Comms.cpp:(.text+0x3b9c): undefined reference to `pcap_set_buffer_size'
/usr/bin/ld: Comms.cpp:(.text+0x3bdc): undefined reference to `pcap_activate'
/usr/bin/ld: Comms.cpp:(.text+0x3c00): undefined reference to `pcap_setdirection'
/usr/bin/ld: Comms.cpp:(.text+0x3c2c): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x3c70): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x3cac): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x3d24): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x3d78): undefined reference to `pcap_geterr'
/usr/bin/ld: .o/src/Comms.o:Comms.cpp:(.text+0x3dc8): more undefined references to `pcap_geterr' follow

(all the libraries are undefined reference. I do install the libraries sudo apt install libdrm-dev libgbm-dev libgles2-mesa-dev libpcap-dev libturbojpeg0-dev libts-dev libsdl2-dev)

  • The instructions on compile SDL2 are outdated.When doing the clone , i got SDL3 and the newer version needs cmake ,not configure.
  • 64bit OS support is needed.maybe means a faster compute speed?
  • We do need to move to a newer version of IDF (5.0) . Because the support of 80211 raw radio doesn't include dumping the CRC error frame in IDF 4.3. We still need the error frames because we have the ability to correct them by fec.
    wi-fi-80211-packet-send
    The following packets will NOT be dumped to the application:
        802.11 error frame, such as the frame with a CRC error, etc.
    
    I notice that IDF 5.0 allows us to do this.

If the above things really matter,i am very very glad to participate in fixing bugs and helping to make the features happen as long as anyone could help me to figure out which step i missed or wrong?
Now i am stucking at compiling gs code :)

@jeanlemotan
Copy link
Owner

What platform are you compiling on? It looks like it's missing libpcap and pigpio.

@whstudio123
Copy link
Contributor Author

whstudio123 commented Jan 31, 2023

I only paste a few lines of the log.Actually all the libraries are undefined reference (even the pthread).The platform is rpi4 with the lastest 64 bit OS raspbian.I do know i need 32 bit OS ,however i tried rpi3 with 32 and 64 OS,rpi4 with 32 and 64 OS ,but all of them stucked in undefied reference.

  • step0:install OS to SD card
  • step1:sudo apt-get update
  • step2:sudo apt-get upgrade
  • step3:sudo apt install libdrm-dev libgbm-dev libgles2-mesa-dev libpcap-dev libturbojpeg0-dev libts-dev libsdl2-dev
  • step4:git clone esp32-cam-fpv
  • step5:cd ./gs
  • step6:make -j4

I will install a new 32 bit OS raspbian today,repeat the steps and post the full logs and screenshots.

@whstudio123
Copy link
Contributor Author

  • Step0 : Install OS to SD card : I use RPI Imager v1.6.2 to auto download and flash the 32 Bit Bullseye RaspberryPi OS to SD card.

23e95105a42922f65436d7781ac04dd

  • Step1 : sudo apt-get update :
    image

  • Step2 : sudo apt-get upgrade :
    image

  • Step3 : sudo reboot

  • Step4 : sudo apt install libdrm-dev libgbm-dev libgles2-mesa-dev libpcap-dev libturbojpeg0-dev libts-dev libsdl2-dev :
    image

  • Step5 : git clone https://github.com/jeanlemotan/esp32-cam-fpv.git :
    image

  • Step6 : cd ./esp32-cam-fpv/gs and make -j4

mlinux@raspberrypi:~/esp32-cam-fpv/gs $ make -j4
g++ -L/usr/lib -L=/opt/vc/lib -lstdc++ -lm -lpthread -lz -lrt -lfreetype -lSDL2 -lturbojpeg -lpcap -lGLESv2 -lpigpio  -o gs .o/src/main.o .o/src/droid_sans_font.o .o/src/HUD.o .o/src/imgui_impl_opengl3.o .o/src/PI_HAL.o .o/src/Comms.o .o/src/Video_Decoder.o .o/src/utils/radiotap/radiotap.o .o/src/imgui/imgui_impl_sdl.o .o/src/imgui/imgui_demo.o .o/src/imgui/imgui_draw.o .o/src/imgui/imgui.o .o/src/imgui/misc/freetype/imgui_freetype.o .o/../components/common/crc.o .o/../components/common/fec.o .o/src/fmt/format.o .o/src/fmt/os.o
/usr/bin/ld: .o/src/main.o: in function `run()':
main.cpp:(.text+0x294): undefined reference to `pthread_create'
/usr/bin/ld: main.cpp:(.text+0x29c): undefined reference to `pthread_create'
/usr/bin/ld: .o/src/main.o: in function `comms_thread_proc()':
main.cpp:(.text+0xef4): undefined reference to `gpioWrite'
/usr/bin/ld: main.cpp:(.text+0xf18): undefined reference to `gpioWrite'
/usr/bin/ld: .o/src/main.o: in function `main':
main.cpp:(.text.startup+0x80): undefined reference to `gpioSetMode'
/usr/bin/ld: .o/src/Comms.o: in function `Comms::prepare_filter(Comms::PCap&)':
Comms.cpp:(.text+0x55b0): undefined reference to `pcap_datalink'
/usr/bin/ld: Comms.cpp:(.text+0x5734): undefined reference to `pcap_compile'
/usr/bin/ld: Comms.cpp:(.text+0x5748): undefined reference to `pcap_setfilter'
/usr/bin/ld: Comms.cpp:(.text+0x5758): undefined reference to `pcap_freecode'
/usr/bin/ld: Comms.cpp:(.text+0x5760): undefined reference to `pcap_get_selectable_fd'
/usr/bin/ld: Comms.cpp:(.text+0x581c): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x58ac): undefined reference to `pcap_freecode'
/usr/bin/ld: Comms.cpp:(.text+0x58b4): undefined reference to `pcap_geterr'
/usr/bin/ld: .o/src/Comms.o: in function `Comms::prepare_pcap(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Comms::PCap&)':
Comms.cpp:(.text+0x5d04): undefined reference to `pcap_create'
/usr/bin/ld: Comms.cpp:(.text+0x5d18): undefined reference to `pcap_set_snaplen'
/usr/bin/ld: Comms.cpp:(.text+0x5d2c): undefined reference to `pcap_set_promisc'
/usr/bin/ld: Comms.cpp:(.text+0x5d40): undefined reference to `pcap_set_rfmon'
/usr/bin/ld: Comms.cpp:(.text+0x5d54): undefined reference to `pcap_set_timeout'
/usr/bin/ld: Comms.cpp:(.text+0x5d68): undefined reference to `pcap_set_immediate_mode'
/usr/bin/ld: Comms.cpp:(.text+0x5d80): undefined reference to `pcap_set_buffer_size'
/usr/bin/ld: Comms.cpp:(.text+0x5dc0): undefined reference to `pcap_activate'
/usr/bin/ld: Comms.cpp:(.text+0x5de4): undefined reference to `pcap_setdirection'
/usr/bin/ld: Comms.cpp:(.text+0x5e04): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x5e38): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x5e50): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x5ee0): undefined reference to `pcap_geterr'
/usr/bin/ld: Comms.cpp:(.text+0x5f60): undefined reference to `pcap_geterr'
/usr/bin/ld: .o/src/Comms.o:Comms.cpp:(.text+0x5fd0): more undefined references to `pcap_geterr' follow
/usr/bin/ld: .o/src/Comms.o: in function `Comms::tx_thread_proc()':
Comms.cpp:(.text+0xe5d4): undefined reference to `pcap_inject'
/usr/bin/ld: Comms.cpp:(.text+0xe71c): undefined reference to `pcap_geterr'
/usr/bin/ld: .o/src/Comms.o: in function `Comms::enumerate_interfaces[abi:cxx11]()':
Comms.cpp:(.text+0x12128): undefined reference to `pcap_findalldevs'
/usr/bin/ld: Comms.cpp:(.text+0x122a0): undefined reference to `pcap_freealldevs'
/usr/bin/ld: .o/src/Comms.o: in function `Comms::init(Comms::RX_Descriptor const&, Comms::TX_Descriptor const&)':
Comms.cpp:(.text+0x18660): undefined reference to `pthread_create'
/usr/bin/ld: Comms.cpp:(.text+0x18668): undefined reference to `pthread_create'
/usr/bin/ld: Comms.cpp:(.text+0x186b0): undefined reference to `pthread_create'
/usr/bin/ld: Comms.cpp:(.text+0x186bc): undefined reference to `pthread_create'
/usr/bin/ld: .o/src/Comms.o: in function `Comms::process_rx_packet(Comms::PCap&)':
Comms.cpp:(.text+0x1a92c): undefined reference to `pcap_next_ex'
/usr/bin/ld: Comms.cpp:(.text+0x1b530): undefined reference to `pcap_geterr'
/usr/bin/ld: .o/src/Video_Decoder.o: in function `Video_Decoder::~Video_Decoder()':
Video_Decoder.cpp:(.text+0x72c8): undefined reference to `glDeleteTextures'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x72d4): undefined reference to `glDeleteTextures'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x72e4): undefined reference to `glDeleteTextures'
/usr/bin/ld: .o/src/Video_Decoder.o: in function `Video_Decoder::init(IHAL&)':
Video_Decoder.cpp:(.text+0x7e74): undefined reference to `pthread_create'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x7e78): undefined reference to `pthread_create'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x7e88): undefined reference to `SDL_GL_CreateContext'
/usr/bin/ld: .o/src/Video_Decoder.o: in function `Video_Decoder::decoder_thread_proc(unsigned int)':
Video_Decoder.cpp:(.text+0x8040): undefined reference to `SDL_GL_MakeCurrent'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x84a4): undefined reference to `tjInitDecompress'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x84d0): undefined reference to `tjDecompressHeader3'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x84e0): undefined reference to `tjDestroy'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x84e4): undefined reference to `tjGetErrorStr'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x85e4): undefined reference to `tjPlaneSizeYUV'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x866c): undefined reference to `tjDecompressToYUVPlanes'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x867c): undefined reference to `tjDestroy'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x888c): undefined reference to `tjGetErrorStr'
/usr/bin/ld: .o/src/Video_Decoder.o: in function `Video_Decoder::lock_output()':
Video_Decoder.cpp:(.text+0x9020): undefined reference to `glBindBuffer'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x903c): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x912c): undefined reference to `glBufferData'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9144): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x91d4): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x91f8): undefined reference to `glMapBufferRange'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x934c): undefined reference to `glUnmapBuffer'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9388): undefined reference to `glBindTexture'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x93a8): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x93f8): undefined reference to `glTexImage2D'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x93fc): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9488): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x94d4): undefined reference to `glBindBuffer'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x94f0): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9580): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x96c4): undefined reference to `glGenBuffers'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x96e0): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9770): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x979c): undefined reference to `glGenTextures'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x97b8): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9848): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x98a8): undefined reference to `glBindTexture'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x98ac): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9930): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9944): undefined reference to `glPixelStorei'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9950): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x99d4): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x99f0): undefined reference to `glTexParameterf'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9a0c): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9a28): undefined reference to `glTexParameterf'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9a44): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9a60): undefined reference to `glTexParameteri'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9a7c): undefined reference to `glGetError'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9a98): undefined reference to `glTexParameteri'
/usr/bin/ld: Video_Decoder.cpp:(.text+0x9ab4): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `CheckShader(unsigned int, char const*) [clone .isra.0]':
imgui_impl_opengl3.cpp:(.text+0x9e4): undefined reference to `glGetShaderiv'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x9fc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xa18): undefined reference to `glGetShaderiv'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xa34): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xaac): undefined reference to `glGetShaderInfoLog'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xac8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xb58): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_ImplOpenGL3_DestroyFontsTexture() [clone .part.0]':
imgui_impl_opengl3.cpp:(.text+0xc04): undefined reference to `glDeleteTextures'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xc08): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xc9c): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_ImplOpenGL3_Shutdown()':
imgui_impl_opengl3.cpp:(.text+0xd5c): undefined reference to `glDeleteProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xd6c): undefined reference to `glDetachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xde4): undefined reference to `glDeleteProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xdf4): undefined reference to `glDetachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xe54): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xe5c): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xe64): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xe6c): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xe7c): undefined reference to `glDeleteBuffers'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xe94): undefined reference to `glDeleteBuffers'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xea4): undefined reference to `glDetachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xec0): undefined reference to `glDetachShader'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_BindShaderData(ShaderData&, float (*) [4])':
imgui_impl_opengl3.cpp:(.text+0xeec): undefined reference to `glUseProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xf08): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xf9c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xfb0): undefined reference to `glUniform1i'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0xfcc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1060): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x10a0): undefined reference to `glUniformMatrix4fv'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x10bc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1150): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x116c): undefined reference to `glBindBuffer'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1180): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1194): undefined reference to `glEnableVertexAttribArray'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x11ac): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1240): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1254): undefined reference to `glEnableVertexAttribArray'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1270): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1284): undefined reference to `glEnableVertexAttribArray'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x129c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1330): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1354): undefined reference to `glVertexAttribPointer'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1370): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1404): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1430): undefined reference to `glVertexAttribPointer'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x144c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x14e0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x150c): undefined reference to `glVertexAttribPointer'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1524): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x15b8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x15d4): undefined reference to `glUniform1i'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x15f0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1610): undefined reference to `glUniform1i'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x162c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x164c): undefined reference to `glUniform1i'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1668): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_ImplOpenGL3_RenderDrawData(ImDrawData*, bool)':
imgui_impl_opengl3.cpp:(.text+0x1724): undefined reference to `glActiveTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1740): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1758): undefined reference to `glEnable'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x178c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x17a0): undefined reference to `glBlendEquation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x17bc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x17d4): undefined reference to `glBlendFunc'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x17f0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1804): undefined reference to `glDisable'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x181c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x18b0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x18c4): undefined reference to `glDisable'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x18dc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1970): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1988): undefined reference to `glEnable'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x19b8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x19dc): undefined reference to `glViewport'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1a80): undefined reference to `glBindBuffer'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1a94): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1ab4): undefined reference to `glBindBuffer'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1acc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1b50): undefined reference to `glBufferData'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1b54): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1be8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1c14): undefined reference to `glBufferData'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1c1c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1cb0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1e3c): undefined reference to `glScissor'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1e70): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1ea4): undefined reference to `glDrawElements'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1eec): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x1f38): undefined reference to `glViewport'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2018): undefined reference to `glDisable'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2024): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x20b8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x20cc): undefined reference to `glActiveTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x20e8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2108): undefined reference to `glBindTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2120): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2134): undefined reference to `glActiveTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2150): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2170): undefined reference to `glBindTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2188): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x219c): undefined reference to `glActiveTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x21b8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x21d8): undefined reference to `glBindTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x21f0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x220c): undefined reference to `glDrawElements'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2240): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2260): undefined reference to `glActiveTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x227c): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2290): undefined reference to `glEnable'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x22c4): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2308): undefined reference to `glBindTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2318): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x23b0): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_ImplOpenGL3_CreateFontsTexture()':
imgui_impl_opengl3.cpp:(.text+0x2460): undefined reference to `glGenTextures'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2464): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x24f8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x251c): undefined reference to `glBindTexture'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2530): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x25c4): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x25e0): undefined reference to `glTexParameteri'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x25fc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2618): undefined reference to `glTexParameteri'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2638): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x267c): undefined reference to `glTexImage2D'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2688): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x271c): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_SetupShaderData(ShaderData&, char const*, char const*)':
imgui_impl_opengl3.cpp:(.text+0x27a4): undefined reference to `glCreateShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x27cc): undefined reference to `glShaderSource'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x27d0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2864): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2878): undefined reference to `glCompileShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2898): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x28c8): undefined reference to `glCreateShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x28ec): undefined reference to `glShaderSource'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x28f0): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2984): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2998): undefined reference to `glCompileShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x29b4): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x29d8): undefined reference to `glCreateProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x29e4): undefined reference to `glAttachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x29fc): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2a18): undefined reference to `glAttachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2a30): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2a44): undefined reference to `glLinkProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2a64): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2a90): undefined reference to `glGetProgramiv'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2aa4): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2b38): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2b54): undefined reference to `glGetProgramiv'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2b70): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2ba0): undefined reference to `glGetUniformLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2bb8): undefined reference to `glGetUniformLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2bd0): undefined reference to `glGetUniformLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2be8): undefined reference to `glGetUniformLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2c00): undefined reference to `glGetUniformLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2c18): undefined reference to `glGetAttribLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2c30): undefined reference to `glGetAttribLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2c48): undefined reference to `glGetAttribLocation'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2cac): undefined reference to `glGetProgramInfoLog'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2cc8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2d58): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_ImplOpenGL3_CreateDeviceObjects()':
imgui_impl_opengl3.cpp:(.text+0x2e40): undefined reference to `glGenBuffers'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2e54): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2ee8): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2efc): undefined reference to `glGenBuffers'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2f18): undefined reference to `glGetError'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x2fac): undefined reference to `glGetError'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_DestroyShaderData(ShaderData&)':
imgui_impl_opengl3.cpp:(.text+0x3048): undefined reference to `glDeleteProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3058): undefined reference to `glDetachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x30a8): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x30b0): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x30c0): undefined reference to `glDetachShader'
/usr/bin/ld: .o/src/imgui_impl_opengl3.o: in function `ImGui_ImplOpenGL3_DestroyDeviceObjects()':
imgui_impl_opengl3.cpp:(.text+0x3130): undefined reference to `glDeleteProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3140): undefined reference to `glDetachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x31b8): undefined reference to `glDeleteProgram'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x31c8): undefined reference to `glDetachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3228): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3230): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3238): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3240): undefined reference to `glDeleteShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3250): undefined reference to `glDeleteBuffers'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3268): undefined reference to `glDeleteBuffers'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3278): undefined reference to `glDetachShader'
/usr/bin/ld: imgui_impl_opengl3.cpp:(.text+0x3294): undefined reference to `glDetachShader'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::unlock_main_context()':
PI_HAL.cpp:(.text+0xec): undefined reference to `SDL_GL_MakeCurrent'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::lock_main_context()':
PI_HAL.cpp:(.text+0x144): undefined reference to `SDL_GL_MakeCurrent'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::shutdown()':
PI_HAL.cpp:(.text+0x180): undefined reference to `SDL_GL_DeleteContext'
/usr/bin/ld: PI_HAL.cpp:(.text+0x18c): undefined reference to `SDL_DestroyWindow'
/usr/bin/ld: PI_HAL.cpp:(.text+0x194): undefined reference to `SDL_Quit'
/usr/bin/ld: PI_HAL.cpp:(.text+0x198): undefined reference to `gpioTerminate'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::init_pigpio()':
PI_HAL.cpp:(.text+0x260): undefined reference to `gpioCfgClock'
/usr/bin/ld: PI_HAL.cpp:(.text+0x274): undefined reference to `gpioCfgPermissions'
/usr/bin/ld: PI_HAL.cpp:(.text+0x308): undefined reference to `gpioInitialise'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::shutdown_pigpio()':
PI_HAL.cpp:(.text+0x3f0): undefined reference to `gpioTerminate'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::init_display_sdl()':
PI_HAL.cpp:(.text+0x42c): undefined reference to `SDL_Init'
/usr/bin/ld: PI_HAL.cpp:(.text+0x438): undefined reference to `SDL_GL_SetAttribute'
/usr/bin/ld: PI_HAL.cpp:(.text+0x444): undefined reference to `SDL_GL_SetAttribute'
/usr/bin/ld: PI_HAL.cpp:(.text+0x450): undefined reference to `SDL_GL_SetAttribute'
/usr/bin/ld: PI_HAL.cpp:(.text+0x45c): undefined reference to `SDL_GL_SetAttribute'
/usr/bin/ld: PI_HAL.cpp:(.text+0x468): undefined reference to `SDL_GL_SetAttribute'
/usr/bin/ld: .o/src/PI_HAL.o:PI_HAL.cpp:(.text+0x474): more undefined references to `SDL_GL_SetAttribute' follow
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::init_display_sdl()':
PI_HAL.cpp:(.text+0x4c8): undefined reference to `SDL_SetHintWithPriority'
/usr/bin/ld: PI_HAL.cpp:(.text+0x4cc): undefined reference to `SDL_GetNumVideoDrivers'
/usr/bin/ld: PI_HAL.cpp:(.text+0x584): undefined reference to `SDL_GetVideoDriver'
/usr/bin/ld: PI_HAL.cpp:(.text+0x608): undefined reference to `SDL_GetCurrentDisplayMode'
/usr/bin/ld: PI_HAL.cpp:(.text+0x6e4): undefined reference to `SDL_CreateWindow'
/usr/bin/ld: PI_HAL.cpp:(.text+0x6f8): undefined reference to `SDL_GL_CreateContext'
/usr/bin/ld: PI_HAL.cpp:(.text+0x710): undefined reference to `SDL_GL_MakeCurrent'
/usr/bin/ld: PI_HAL.cpp:(.text+0x738): undefined reference to `SDL_GL_SetSwapInterval'
/usr/bin/ld: PI_HAL.cpp:(.text+0x7e4): undefined reference to `SDL_GetError'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::shutdown_display_sdl()':
PI_HAL.cpp:(.text+0xaa8): undefined reference to `SDL_GL_DeleteContext'
/usr/bin/ld: PI_HAL.cpp:(.text+0xab4): undefined reference to `SDL_DestroyWindow'
/usr/bin/ld: PI_HAL.cpp:(.text+0xabc): undefined reference to `SDL_Quit'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::shutdown_display()':
PI_HAL.cpp:(.text+0xad0): undefined reference to `SDL_GL_DeleteContext'
/usr/bin/ld: PI_HAL.cpp:(.text+0xadc): undefined reference to `SDL_DestroyWindow'
/usr/bin/ld: PI_HAL.cpp:(.text+0xae4): undefined reference to `SDL_Quit'
/usr/bin/ld: .o/src/PI_HAL.o: in function `PI_HAL::update_display()':
PI_HAL.cpp:(.text+0xb08): undefined reference to `glScissor'
/usr/bin/ld: PI_HAL.cpp:(.text+0xb1c): undefined reference to `glClearColor'
/usr/bin/ld: PI_HAL.cpp:(.text+0xb24): undefined reference to `glClear'
/usr/bin/ld: PI_HAL.cpp:(.text+0xb5c): undefined reference to `SDL_PollEvent'
/usr/bin/ld: PI_HAL.cpp:(.text+0xb78): undefined reference to `SDL_GL_SwapWindow'
/usr/bin/ld: .o/src/PI_HAL.o: in function `virtual thunk to PI_HAL::shutdown()':
PI_HAL.cpp:(.text+0xe20): undefined reference to `SDL_GL_DeleteContext'
/usr/bin/ld: PI_HAL.cpp:(.text+0xe2c): undefined reference to `SDL_DestroyWindow'
/usr/bin/ld: PI_HAL.cpp:(.text+0xe34): undefined reference to `SDL_Quit'
/usr/bin/ld: PI_HAL.cpp:(.text+0xe38): undefined reference to `gpioTerminate'
/usr/bin/ld: .o/src/PI_HAL.o: in function `virtual thunk to PI_HAL::lock_main_context()':
PI_HAL.cpp:(.text+0xf1c): undefined reference to `SDL_GL_MakeCurrent'
/usr/bin/ld: .o/src/PI_HAL.o: in function `virtual thunk to PI_HAL::unlock_main_context()':
PI_HAL.cpp:(.text+0xf4c): undefined reference to `SDL_GL_MakeCurrent'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_GetClipboardText(void*)':
imgui_impl_sdl.cpp:(.text+0x18): undefined reference to `SDL_free'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x1c): undefined reference to `SDL_GetClipboardText'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_SetClipboardText(void*, char const*)':
imgui_impl_sdl.cpp:(.text+0x2c): undefined reference to `SDL_SetClipboardText'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_ProcessEvent(SDL_Event const*)':
imgui_impl_sdl.cpp:(.text+0x12c): undefined reference to `SDL_GetModState'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x13c): undefined reference to `SDL_GetModState'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x150): undefined reference to `SDL_GetModState'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x164): undefined reference to `SDL_GetModState'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_InitForOpenGL(SDL_Window*, void*)':
imgui_impl_sdl.cpp:(.text+0x29c): undefined reference to `SDL_CreateSystemCursor'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x2b0): undefined reference to `SDL_CreateSystemCursor'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x2c0): undefined reference to `SDL_CreateSystemCursor'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x2cc): undefined reference to `SDL_CreateSystemCursor'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x2dc): undefined reference to `SDL_CreateSystemCursor'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o:imgui_impl_sdl.cpp:(.text+0x2e8): more undefined references to `SDL_CreateSystemCursor' follow
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_InitForOpenGL(SDL_Window*, void*)':
imgui_impl_sdl.cpp:(.text+0x30c): undefined reference to `SDL_GetCurrentVideoDriver'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_Shutdown()':
imgui_impl_sdl.cpp:(.text+0x440): undefined reference to `SDL_free'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x458): undefined reference to `SDL_FreeCursor'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_NewFrame(SDL_Window*)':
imgui_impl_sdl.cpp:(.text+0x4a8): undefined reference to `SDL_GetWindowSize'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x4b0): undefined reference to `SDL_GetWindowFlags'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x4d0): undefined reference to `SDL_GL_GetDrawableSize'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x55c): undefined reference to `SDL_GetPerformanceCounter'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x608): undefined reference to `SDL_GameControllerOpen'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x61c): undefined reference to `SDL_GameControllerGetButton'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x63c): undefined reference to `SDL_GameControllerGetButton'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x658): undefined reference to `SDL_GameControllerGetButton'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x674): undefined reference to `SDL_GameControllerGetButton'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x690): undefined reference to `SDL_GameControllerGetButton'
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o:imgui_impl_sdl.cpp:(.text+0x6ac): more undefined references to `SDL_GameControllerGetButton' follow
/usr/bin/ld: .o/src/imgui/imgui_impl_sdl.o: in function `ImGui_ImplSDL2_NewFrame(SDL_Window*)':
imgui_impl_sdl.cpp:(.text+0x76c): undefined reference to `SDL_GameControllerGetAxis'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x7a4): undefined reference to `SDL_GameControllerGetAxis'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x7e0): undefined reference to `SDL_GameControllerGetAxis'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x81c): undefined reference to `SDL_GameControllerGetAxis'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x888): undefined reference to `SDL_ShowCursor'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x8b8): undefined reference to `SDL_GetMouseState'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x900): undefined reference to `SDL_GetKeyboardFocus'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x948): undefined reference to `SDL_SetCursor'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x950): undefined reference to `SDL_ShowCursor'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0x99c): undefined reference to `SDL_GetPerformanceFrequency'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0xa1c): undefined reference to `SDL_WarpMouseInWindow'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0xa44): undefined reference to `SDL_GetWindowPosition'
/usr/bin/ld: imgui_impl_sdl.cpp:(.text+0xa50): undefined reference to `SDL_GetGlobalMouseState'
/usr/bin/ld: .o/src/imgui/misc/freetype/imgui_freetype.o: in function `ImGuiFreeType::BuildFontAtlas(ImFontAtlas*, unsigned int)':
imgui_freetype.cpp:(.text+0x15c): undefined reference to `FT_Init_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x18c): undefined reference to `FT_New_Memory_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1a0): undefined reference to `FT_Select_Charmap'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1f4): undefined reference to `FT_Request_Size'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x8c4): undefined reference to `FT_Get_Char_Index'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x8dc): undefined reference to `FT_Load_Glyph'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x90c): undefined reference to `FT_Get_Glyph'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x924): undefined reference to `FT_Glyph_To_Bitmap'
/usr/bin/ld: imgui_freetype.cpp:(.text+0xc30): undefined reference to `FT_Done_Glyph'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x147c): undefined reference to `FT_Done_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1488): undefined reference to `FT_Done_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x14a8): undefined reference to `FT_Done_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x14b4): undefined reference to `FT_Done_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x14d0): undefined reference to `FT_Done_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x14dc): undefined reference to `FT_Done_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1504): undefined reference to `FT_Done_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1510): undefined reference to `FT_Done_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x152c): undefined reference to `FT_Done_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1538): undefined reference to `FT_Done_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1550): undefined reference to `FT_Done_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x155c): undefined reference to `FT_Done_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1574): undefined reference to `FT_Done_Face'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1580): undefined reference to `FT_Done_FreeType'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x160c): undefined reference to `FT_GlyphSlot_Oblique'
/usr/bin/ld: imgui_freetype.cpp:(.text+0x1618): undefined reference to `FT_GlyphSlot_Embolden'
collect2: error: ld returned 1 exit status
make: *** [Makefile:115: gs] Error 1

2023-01-31-094934_1920x1080_scrot

And here is my uname info:
image

I can find my libraries here:
image

I also add this path to Makefile but nothing changes:
image

I can makesure all the downloads&installs&updates&upgrades are successful. So.....Any idea:)?

@lida2003
Copy link
Contributor

Latest code of gs, RPI 3B+ with following image and apt-get upgrade, should be fine :)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
$ uname -r
5.10.103-v7+
$ uname -a
Linux PiNas 5.10.103-v7+ #1529 SMP Tue Mar 8 12:21:37 GMT 2022 armv7l GNU/Linux

@whstudio123
Copy link
Contributor Author

whstudio123 commented Jan 31, 2023

That means i need RPI 3B+ and 32bit Raspbian buster ? I will have a try immediately.
But in other raspberry pi and system versions, does it mean that the current code really cannot be compiled?
I think it may be the reason for bullseye, maybe pi3 pi3+ or pi4 have little impact.

@lida2003
Copy link
Contributor

That means i need RPI 3B+ and 32bit Raspbian buster ?

I mean it works for me :)

The error is caused by Makefile, you have to modify the Makefile if there is some compatible issue.

@lida2003
Copy link
Contributor

  • We do need to move to a newer version of IDF (5.0) . Because the support of 80211 raw radio doesn't include dumping the CRC error frame in IDF 4.3. We still need the error frames because we have the ability to correct them by fec.
    wi-fi-80211-packet-send
    The following packets will NOT be dumped to the application: 802.11 error frame, such as the frame with a CRC error, etc.
    I notice that IDF 5.0 allows us to do this.

This new feature is worth to implement. Can you open a new issue, maybe a PR is well appreciated.

@whstudio123
Copy link
Contributor Author

whstudio123 commented Jan 31, 2023

Thank you for your warm support and trust.After i successfully compile the gs code,i will make a new issue foucus on move to IDF 5.0.
I also think we need new system (Bullseye) and 64 bit support to make more speed , compatibility and flexibility.
The work foucus on makefile and a few lines of code need to be changed because of some ptr issues (I have done some experiment and modification.).Do you think we also need this PR?

@lida2003
Copy link
Contributor

lida2003 commented Jan 31, 2023

Frankly speaking, currently, gs compiles ok, but it doesn't work properly #20 with air unit (IDF 4.3 or 4.4 latest or 4.3 beta)

I have got gs compiled on RPI 3B+(minimum modification, which was merged into main stream), and I also have ubuntu x86 compiled. BUT both applicaiton on PI or x86 shows black screen(I'm afraid).

Try to understand the rootcause of black screen first.

@whstudio123
Copy link
Contributor Author

Here comes the result .I successfully compiled the gs code in 32bit buster with rpi4.
That means the code needs buster version in rpi platform.
Now I will first foucus on getting the rootcause of black screen and then have a check with the Makefile compatibility.

@whstudio123
Copy link
Contributor Author

@lida2003 I heard that you have compiled code in ubuntu linux. What is your system version? I have been working on ubuntu 18.04 64bit and undefied reference happened. I would appreciate it If you could help me to find something in makefiles.

@lida2003
Copy link
Contributor

lida2003 commented Feb 1, 2023

Please use this patch, currently not accepted by @jeanlemotan , BUT it should work. Fix compatibility issue in Makefie on x86_64 ubuntu 20.04

Or you can just go to my repo and pull lida-dev branch .

# git clone git@github.com:lida2003/esp32-cam-fpv.git

@whstudio123
Copy link
Contributor Author

whstudio123 commented Feb 1, 2023

When you are so smart and diligent in modifying your code, I am also looking for problems in the makefile and source code. In fact, the points we noticed are all the same (nice!). I will add several links below to help later people understand the reasons for these Makefiles changes:
Linker errors from makefile
gcc编译时对'xxxx'未定义的引用问题

@whstudio123
Copy link
Contributor Author

I have reviewed the code and make some comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants