albfan / miraclecast

Connect external monitors to your system via Wifi-Display specification also known as Miracast
Other
3.82k stars 412 forks source link

RPi0w make fails at "Linking C executable miracle-wifictl" #324

Open Msprg opened 5 years ago

Msprg commented 5 years ago

Hi,

I am trying to compile and run miraclecast on RPi0w, but I ran into some problems. here is the output of the terminal:

pi@raspberrypi:~/miraclecast/cmake $ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29")
-- Checking for module 'glib-2.0'
--   Found glib-2.0, version 2.50.3
-- Checking for module 'libudev'
--   Found libudev, version 232
-- Checking for module 'libsystemd'
--   Found libsystemd, version 232
CMake Warning at src/ctl/CMakeLists.txt:5 (find_package):
  By not providing "FindReadline.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Readline",
  but CMake did not find one.

  Could not find a package configuration file provided by "Readline" with any
  of the following names:

    ReadlineConfig.cmake
    readline-config.cmake

  Add the installation prefix of "Readline" to CMAKE_PREFIX_PATH or set
  "Readline_DIR" to a directory containing one of the above files.  If
  "Readline" provides a separate development package or SDK, be sure it has
  been installed.

-- Checking for module 'check'
--   Found check, version 0.10.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/miraclecast/cmake
pi@raspberrypi:~/miraclecast/cmake $ make
Scanning dependencies of target miracle-shared
[  2%] Building C object src/shared/CMakeFiles/miracle-shared.dir/rtsp.c.o
[  5%] Building C object src/shared/CMakeFiles/miracle-shared.dir/shl_htable.c.o
[  7%] Building C object src/shared/CMakeFiles/miracle-shared.dir/shl_log.c.o
[ 10%] Building C object src/shared/CMakeFiles/miracle-shared.dir/shl_ring.c.o
[ 12%] Building C object src/shared/CMakeFiles/miracle-shared.dir/shl_util.c.o
[ 15%] Building C object src/shared/CMakeFiles/miracle-shared.dir/wpas.c.o
[ 17%] Linking C static library libmiracle-shared.a
[ 17%] Built target miracle-shared
Scanning dependencies of target miracled
[ 20%] Building C object src/CMakeFiles/miracled.dir/miracled.c.o
[ 23%] Linking C executable miracled
[ 23%] Built target miracled
Scanning dependencies of target miracle-wifid
[ 25%] Building C object src/wifi/CMakeFiles/miracle-wifid.dir/wifid.c.o
[ 28%] Building C object src/wifi/CMakeFiles/miracle-wifid.dir/wifid-dbus.c.o
[ 30%] Building C object src/wifi/CMakeFiles/miracle-wifid.dir/wifid-link.c.o
[ 33%] Building C object src/wifi/CMakeFiles/miracle-wifid.dir/wifid-peer.c.o
[ 35%] Building C object src/wifi/CMakeFiles/miracle-wifid.dir/wifid-supplicant.c.o
[ 38%] Linking C executable miracle-wifid
[ 38%] Built target miracle-wifid
Scanning dependencies of target miracle-dhcp
[ 41%] Building C object src/dhcp/CMakeFiles/miracle-dhcp.dir/dhcp.c.o
[ 43%] Building C object src/dhcp/CMakeFiles/miracle-dhcp.dir/common.c.o
[ 46%] Building C object src/dhcp/CMakeFiles/miracle-dhcp.dir/ipv4ll.c.o
[ 48%] Building C object src/dhcp/CMakeFiles/miracle-dhcp.dir/client.c.o
[ 51%] Building C object src/dhcp/CMakeFiles/miracle-dhcp.dir/server.c.o
[ 53%] Linking C executable miracle-dhcp
[ 53%] Built target miracle-dhcp
Scanning dependencies of target miracle-wifictl
[ 56%] Building C object src/ctl/CMakeFiles/miracle-wifictl.dir/ctl-cli.c.o
[ 58%] Building C object src/ctl/CMakeFiles/miracle-wifictl.dir/ctl-wifi.c.o
[ 61%] Building C object src/ctl/CMakeFiles/miracle-wifictl.dir/wifictl.c.o
[ 64%] Linking C executable miracle-wifictl
CMakeFiles/miracle-wifictl.dir/ctl-cli.c.o: In function `cli_printv':
ctl-cli.c:(.text+0x140): undefined reference to `rl_copy_text'
ctl-cli.c:(.text+0x14c): undefined reference to `rl_save_prompt'
ctl-cli.c:(.text+0x158): undefined reference to `rl_replace_line'
ctl-cli.c:(.text+0x15c): undefined reference to `rl_redisplay'
ctl-cli.c:(.text+0x178): undefined reference to `rl_restore_prompt'
ctl-cli.c:(.text+0x188): undefined reference to `rl_replace_line'
ctl-cli.c:(.text+0x198): undefined reference to `rl_redisplay'
ctl-cli.c:(.text+0x1c0): undefined reference to `rl_readline_state'
ctl-cli.c:(.text+0x1c4): undefined reference to `rl_point'
ctl-cli.c:(.text+0x1c8): undefined reference to `rl_end'
CMakeFiles/miracle-wifictl.dir/ctl-cli.c.o: In function `cli_handler_fn':
ctl-cli.c:(.text+0x808): undefined reference to `rl_insert_text'
ctl-cli.c:(.text+0x80c): undefined reference to `rl_redisplay'
ctl-cli.c:(.text+0x810): undefined reference to `rl_crlf'
ctl-cli.c:(.text+0x898): undefined reference to `add_history'
CMakeFiles/miracle-wifictl.dir/ctl-cli.c.o: In function `cli_stdin_fn':
ctl-cli.c:(.text+0x95c): undefined reference to `rl_callback_read_char'
CMakeFiles/miracle-wifictl.dir/ctl-cli.c.o: In function `cli_signal_fn':
ctl-cli.c:(.text+0xa30): undefined reference to `rl_replace_line'
ctl-cli.c:(.text+0xa34): undefined reference to `rl_crlf'
ctl-cli.c:(.text+0xa38): undefined reference to `rl_on_new_line'
ctl-cli.c:(.text+0xa3c): undefined reference to `rl_redisplay'
CMakeFiles/miracle-wifictl.dir/ctl-cli.c.o: In function `cli_destroy':
ctl-cli.c:(.text+0xae8): undefined reference to `rl_replace_line'
ctl-cli.c:(.text+0xaec): undefined reference to `rl_crlf'
ctl-cli.c:(.text+0xaf0): undefined reference to `rl_on_new_line'
ctl-cli.c:(.text+0xaf4): undefined reference to `rl_redisplay'
ctl-cli.c:(.text+0xafc): undefined reference to `rl_message'
ctl-cli.c:(.text+0xb00): undefined reference to `rl_callback_handler_remove'
CMakeFiles/miracle-wifictl.dir/ctl-cli.c.o: In function `cli_init':
ctl-cli.c:(.text+0xedc): undefined reference to `rl_callback_handler_install'
ctl-cli.c:(.text+0xee4): undefined reference to `rl_set_prompt'
ctl-cli.c:(.text+0xef0): undefined reference to `rl_on_new_line'
ctl-cli.c:(.text+0xef4): undefined reference to `rl_redisplay'
ctl-cli.c:(.text+0xf78): undefined reference to `rl_erase_empty_line'
collect2: error: ld returned 1 exit status
src/ctl/CMakeFiles/miracle-wifictl.dir/build.make:147: recipe for target 'src/ctl/miracle-wifictl' failed
make[2]: *** [src/ctl/miracle-wifictl] Error 1
CMakeFiles/Makefile2:321: recipe for target 'src/ctl/CMakeFiles/miracle-wifictl.dir/all' failed
make[1]: *** [src/ctl/CMakeFiles/miracle-wifictl.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Am I doing something wrong? Can you help me get it to work?

albfan commented 5 years ago

cmake warns that you miss dev headers for readline, so compile fails linking those rl_* functions

package name is different from distro to distro, it can be libreadline-dev, readline-devel or any of those combinations