quiet / quiet-lwip

Full network stack over sound -- lwIP driver for libquiet
Other
660 stars 58 forks source link

Compile Breaks on "make examples" #2

Open Godtec opened 7 years ago

Godtec commented 7 years ago

Hi Brian:

So I was able to compile the quiet-lwip correctly, but when I try to compile the examples, as noted on your wiki. I get this error? It's a Linker error actually.

mikek@mike-M6700:~/Documents/Mike_Play_Learn/SDR_Radio/quiet/quiet-lwip-master/build$ make examples [ 1%] Built target lwip_netif [ 3%] Built target lwip_sys [ 19%] Built target lwip_api [ 50%] Built target lwip_core [ 65%] Built target lwip_ipv4 [ 73%] Built target quiet_lwip [ 75%] Building C object examples/CMakeFiles/kv_server.dir/src/kv_server.c.o [ 76%] Linking C executable ../bin/kv_server //usr/local/lib/libquiet.so: undefined reference to ofdmflexframesync_is_frame_open' //usr/local/lib/libquiet.so: undefined reference toofdmflexframesync_set_header_len' //usr/local/lib/libquiet.so: undefined reference to ofdmflexframegen_set_header_len' //usr/local/lib/libquiet.so: undefined reference togmskframesync_set_header_len' //usr/local/lib/libquiet.so: undefined reference to flexframesync_set_header_len' //usr/local/lib/libquiet.so: undefined reference togmskframegen_set_header_len' //usr/local/lib/libquiet.so: undefined reference to flexframegen_set_header_len' //usr/local/lib/libquiet.so: undefined reference toflexframesync_is_frame_open' //usr/local/lib/libquiet.so: undefined reference to gmskframesync_is_frame_open' //usr/local/lib/libquiet.so: undefined reference toresamp_rrrf_execute_output_block' collect2: error: ld returned 1 exit status examples/CMakeFiles/kv_server.dir/build.make:95: recipe for target 'bin/kv_server' failed make[3]: [bin/kv_server] Error 1 CMakeFiles/Makefile2:760: recipe for target 'examples/CMakeFiles/kv_server.dir/all' failed make[2]: [examples/CMakeFiles/kv_server.dir/all] Error 2 CMakeFiles/Makefile2:607: recipe for target 'examples/CMakeFiles/examples.dir/rule' failed make[1]: [examples/CMakeFiles/examples.dir/rule] Error 2 Makefile:261: recipe for target 'examples' failed make: [examples] Error 2 mikek@mike-M6700:~/Documents/Mike_Play_Learn/SDR_Radio/quiet/quiet-lwip-master/build$


Any idea's

Thanks. MikeK

Godtec commented 7 years ago

Pasting Again:

mikek@mike-M6700:~/Documents/Mike_Play_Learn/SDR_Radio/quiet/quiet-lwip-master/build$ make examples [ 1%] Built target lwip_netif [ 3%] Built target lwip_sys [ 19%] Built target lwip_api [ 50%] Built target lwip_core [ 65%] Built target lwip_ipv4 [ 73%] Built target quiet_lwip [ 75%] Building C object examples/CMakeFiles/kv_server.dir/src/kv_server.c.o [ 76%] Linking C executable ../bin/kv_server //usr/local/lib/libquiet.so: undefined reference toofdmflexframesync_is_frame_open' //usr/local/lib/libquiet.so: undefined reference to ofdmflexframesync_set_header_len' //usr/local/lib/libquiet.so: undefined reference toofdmflexframegen_set_header_len' //usr/local/lib/libquiet.so: undefined reference to gmskframesync_set_header_len' //usr/local/lib/libquiet.so: undefined reference toflexframesync_set_header_len' //usr/local/lib/libquiet.so: undefined reference to gmskframegen_set_header_len' //usr/local/lib/libquiet.so: undefined reference toflexframegen_set_header_len' //usr/local/lib/libquiet.so: undefined reference to flexframesync_is_frame_open' //usr/local/lib/libquiet.so: undefined reference togmskframesync_is_frame_open' //usr/local/lib/libquiet.so: undefined reference to resamp_rrrf_execute_output_block' collect2: error: ld returned 1 exit status examples/CMakeFiles/kv_server.dir/build.make:95: recipe for target 'bin/kv_server' failed make[3]: *** [bin/kv_server] Error 1 CMakeFiles/Makefile2:760: recipe for target 'examples/CMakeFiles/kv_server.dir/all' failed make[2]: *** [examples/CMakeFiles/kv_server.dir/all] Error 2 CMakeFiles/Makefile2:607: recipe for target 'examples/CMakeFiles/examples.dir/rule' failed make[1]: *** [examples/CMakeFiles/examples.dir/rule] Error 2 Makefile:261: recipe for target 'examples' failed make: *** [examples] Error 2 mikek@mike-M6700:~/Documents/Mike_Play_Learn/SDR_Radio/quiet/quiet-lwip-master/build$

brian-armstrong commented 7 years ago

Hey Mike,

Thanks for trying out quiet.

Did you happen to already have liquid dsp installed before trying it out?The linker error appears to reference just the functions that quiet has added on top of liquid but which haven't been merged back to liquid yet. Quiet's cmake build process is supposed to detect this and report an error but it's possible it failed somehow.

Godtec commented 7 years ago

So I actually had liquid-dsp installed before I installed quiet or quiet-lwip. After trying it again, I noticed a few things. There are 2 examples directories. One at the quiet-lwip-master level and another at the quiet-lwip-master/build level. But I think this is a red herring because I think when I did the cmake .. it just created the extra examples directories.

Anyway, I did want to ask you a few questions about your quiet project. What would be a good Forum to pose these questions/discussions.

So at the 20000 foot level, I am looking to make a "high speed" radio link over amateur radio frequencies using OFDM/GMSK modulation schemes, I understand that there is a lot to this, but I found a few projects (such as this one) that have already have started exploring. What I am VERY impressed about is your Quiet.js project in the web browser where I was able to get 1024 bit QAM and decoded over and audio signal cable looped back with a symbol decode rate at ~60ms with 40 to 50% cpu usage. I have tried another project called "amodem" which is python based but does not seem to be multi-threaded.

My next steps are to get your software communicating over a "over the air" radio link using the Audio frequencies of my sound card interconnected to my transmit and receive radio's. I completely understand that I will not get anywhere close to QAM 1024 over a radio link. I would be even lucky to get QAM 16 or QAM 8.

Sorry for being long winded. But my final goal is to use the software to create multiple QAM carriers, 4 or 8 in a row to get the desired bit rate that I am after. ~ 128K or 512K. depends on the fequency usage.

More to discuss.

Thanks for now. MikeK

brian-armstrong commented 7 years ago

That sounds like an interesting use of quiet. I hadn't considered that you could actually use it that way, but that's essentially the same as psk31 or similar modes. Neat!

If your build is still broken, try cloning my version of liquid and building it. You can check it out with git clone https://github.com/quiet/liquid-dsp.git -b devel --single-branch which will checkout the devel branch, which is where all my extra work is done. You'll probably need to rebuild libquiet before you try building quiet-lwip again. I'm not quite sure why you have two build directories, unless you mean one for quiet and one for quiet-lwip?

If you want to talk more over email, feel free to use the address on my github profile. And good luck with your project, it sounds interesting 👍

cegea commented 6 years ago

Hi Brian,

Firstly, congratulations for your work. I´m sure I´ll have fun with quiet. Similar problem here. I´ve tried what you explained to Godtec but I am having similar results and I don´t know what I´m doing wrong.

Additionally to be able to build quiet-liwp I had to copy two include files from libquiet.

# Copy files to avoid make errors
cp -n ~/quiet/quiet/include/quiet.h ~/quiet/quiet-lwip/include
cp -n ~/quiet/quiet/include/quiet-portaudio.h ~/quiet/quiet-lwip/include

I attach the scripts I am writing to install the dependencies and quiet-lwip. Note that I needed to install some packages to run the installation from a clean Ubuntu machine. It would be helpful for others to mention it I guess.

The message I get is the following:

[ 65%] Built target lwip_ipv4
[ 73%] Built target quiet_lwip
Scanning dependencies of target kv_server
[ 75%] Building C object examples/CMakeFiles/kv_server.dir/src/kv_server.c.o
[ 76%] Linking C executable ../bin/kv_server
/usr/bin/ld: cannot find -lquiet
collect2: error: ld returned 1 exit status
examples/CMakeFiles/kv_server.dir/build.make:95: recipe for target 'bin/kv_server' failed
make[3]: *** [bin/kv_server] Error 1
CMakeFiles/Makefile2:760: recipe for target 'examples/CMakeFiles/kv_server.dir/all' failed
make[2]: *** [examples/CMakeFiles/kv_server.dir/all] Error 2
CMakeFiles/Makefile2:607: recipe for target 'examples/CMakeFiles/examples.dir/rule' failed
make[1]: *** [examples/CMakeFiles/examples.dir/rule] Error 2
Makefile:261: recipe for target 'examples' failed
make: *** [examples] Error 2

Thank you, Carlos

cegea commented 6 years ago

Hi again,

I´ve got it to work. I was missing libsndfile so quiet wasn't building correctly. Duh!

I have the script here: https://github.com/cegea/set_enviroment/blob/master/quiet-lwip https://github.com/cegea/set_enviroment/blob/master/quiet_dependencies

If you think that shouldn't be there, tell me.

Regards, Carlos