博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mac OSX 编译 LeanSDR
阅读量:6585 次
发布时间:2019-06-24

本文共 9249 字,大约阅读时间需要 30 分钟。

LeanSDR:Lightweight, portable software-defined radio

git clone http://github.com/pabr/leansdr.gitcd leansdr/src/apps

LeanSDR在使用过程中需要使用X11图形框架,首次在OSX编译LeanSDR会有报错:

g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leandvb.cc -lX11 -o leandvb  ||  \    g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable       leandvb.cc       -o leandvbIn file included from leandvb.cc:17:../leansdr/gui.h:16:10: fatal error: 'X11/X.h' file not found#include 
^1 error generated.g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leansdrscan.cc -lX11 -o leansdrscan || \ g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable leansdrscan.cc -o leansdrscanleansdrscan.cc:115:10: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if ( nr < 0 ) fatal("read"); ~~ ^ ~1 warning generated.ld: library not found for -lX11clang: error: linker command failed with exit code 1 (use -v to see invocation)leansdrscan.cc:115:10: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if ( nr < 0 ) fatal("read"); ~~ ^ ~1 warning generated.g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leansdrcat.cc -lX11 -o leansdrcat || \ g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable leansdrcat.cc -o leansdrcatld: library not found for -lX11clang: error: linker command failed with exit code 1 (use -v to see invocation)g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leantsgen.cc -lX11 -o leantsgen || \ g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable leantsgen.cc -o leantsgenld: library not found for -lX11clang: error: linker command failed with exit code 1 (use -v to see invocation)g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leanchansim.cc -lX11 -o leanchansim || \ g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable leanchansim.cc -o leanchansimld: library not found for -lX11clang: error: linker command failed with exit code 1 (use -v to see invocation)g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leandvbtx.cc -lX11 -o leandvbtx || \ g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable leandvbtx.cc -o leandvbtxld: library not found for -lX11clang: error: linker command failed with exit code 1 (use -v to see invocation)

查找X11目录

sudo find / -name "X.h"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.4/Headers/X11/X.h/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/X.hfind: /dev/fd/cn0xroot: No such file or directoryfind: /dev/fd/cn0xroot: No such file or directory/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/X.h/opt/local/include/X11/X.h/opt/local/share/doc/boost/libs/coroutine/example/cpp03/asymmetric/X.h/opt/metasploit-framework/embedded/include/X11/X.h/opt/X11/include/X11/X.h/System/Library/Frameworks/Tk.framework/Versions/8.4/Headers/X11/X.h/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/X.h

解决方案:修改Makefile

APPS = leandvb leansdrscanAPPS += leansdrcat leantsgen leanchansim leandvbtxall: $(APPS)clean:rm -f $(APPS)DEPS = ../leansdr/*.hCXXFLAGS = -O3 -I.. -I/opt/X11/include -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable%: %.cc $(DEPS)g++ $(CXXFLAGS) -DGUI $< -lX11 -L/opt/X11/lib -o $@ || \g++ $(CXXFLAGS) $< -o $@EMBED_FLAGS= -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable \-Ofast -mfpu=neon -funsafe-math-optimizations -fsingle-precision-constantleandvb.embedded: leandvb.cc $(DEPS)g++ $(CXXFLAGS) $(EMBED_FLAGS) $< -static -o $@ || \g++ $(CXXFLAGS) $(EMBED_FLAGS) $< -o $@
make

Usage

leandvb --helpUsage: leandvb [options]  < IQ  > TSDemodulate DVB-S I/Q on stdin, output MPEG packets on stdoutInput options:  --u8           Input format is 8-bit unsigned (rtl_sdr, default)  --f32          Input format is 32-bit float (gqrx)  -f HZ          Input sample rate (default: 2.4e6)  --loop         Repeat (stdin must be a file)  --inbuf N      Additional input buffering (samples)Preprocessing options:  --anf N        Number of birdies to remove (default: 1)  --derotate HZ  For use with --fd-pp, otherwise use --tune  --resample     Resample baseband (CPU-intensive)  --resample-rej K  Aliasing rejection (default: 10)  --decim N      Decimate baseband (causes aliasing)  --cnr          Measure CNR (requires samplerate>3*symbolrate)  --fd-pp NUM    Dump preprocessed IQ data to file descriptorDVB-S options:  --sr HZ        Symbol rate (default: 2e6)  --tune HZ      Bias frequency for demodulation  --drift        Track frequency drift beyond safe limits  --standard S   DVB-S (default), DVB-S2 (not implemented)  --const C      QPSK (default), BPSK .. 32APSK (DVB-S2 only)  --cr N/D       Code rate 1/2 (default) .. 7/8 .. 9/10  --fastlock     Synchronize more aggressively (CPU-intensive)  --sampler      nearest, linear, rrc  --rrc-steps N  RRC interpolation factor  --rrc-rej K    RRC filter rejection (defaut:10)  --roll-off A   RRC roll-off (default: 0.35)  --viterbi      Use Viterbi (CPU-intensive)  --hard-metric  Use Hamming distances with ViterbiCompatibility options:  --hdlc         Expect HDLC frames instead of MPEG packets  --packetized   Output 16-bit length prefix (default: as stream)General options:  --buf-factor   Buffer size factor (default:4)  --hq           Maximize sensitivity                 (Enables all CPU-intensive features)  --hs           Maximize throughput (QPSK CR1/2 only)                 (Disables all preprocessing)UI options:  -h             Display this help message and exit  -v             Output debugging info at startup and exit  -d             Output debugging info during operation  --fd-info NUM  Output demodulator status to file descriptor  --fd-const NUM Output constellation and symbols to file descr  --gui          Show constellation and spectrum (X11)  --duration S   Width of timeline plot (default: 60)  --linger       Keep GUI running after EOFTesting options:  --awgn STDDEV  Add white gaussian noise (slow)
eanchansim --helpUsage: leanchansim [options]  < IQ.in  > IQ.outSimulate an imperfect communication channel.Input options:  --iu8              Interpret stdin as complex unsigned char  --if32             Interpret stdin as complex float  -f Hz              Specify sample rate  --loop             Repeat (stdin must be a file)Gain options:  --scale FACTOR     Multiply by constantDrift options:  --lo HZ            Specify nominal LO frequency  --ppm PPM          Specify LO accuracy  --drift-period S   Drift +-ppm every S seconds  --drift-rate R     Drift with maximum rate R (Hz/s)  --drift2-amp HZ    Add secondary drift (range in Hz)  --drift2-freq HZ   Add secondary drift (rate in Hz)Noise options:  --awgn STDDEV      Add white gaussian noise (dB)Output options:  --ou8              Output as complex unsigned char  --of32             Output as complex float
leandvbtx --helpUsage: leandvbtx [options]  < TS  > IQModulate MPEG packets into a DVB-S baseband signalOutput float complex samplesOptions:  -f INTERP[/DECIM]        Samples per symbols (default: 2)  --roll-off R             RRC roll-off (defalt: 0.35)  --power P                Output power (dB)  --agc                    Better regulation of output power  -v                       Verbose output
leansdrcat --helpUsage: leansdrcat [options]Forward from stdin to stdout at constant rate.Options:  --block      Pause when stdout is busy (default: '#' on stderr)  --nonblock   Silently ignore when stdout is busy  --cbr R      Set rate in bits per second  --cbr8 R     Set rate in bytes per second  --cbr16 R    Set rate in 16-bit words per second  --cbr32 R    Set rate in 32-bit words per second  --cbr64 R    Set rate in 64-bit words per second  -h           Display this help message and exit
leansdrscan --helpUsage: leansdrscan [options]  [program settings]Run , cycling through combinations of settings.Example: 'leansdrscan -v cat -n,-e' will feed stdin through 'cat -n' and 'cat -e' alternatively.Options:  -h              Print this message  -v              Verbose  --timeout N     Next settings if no output within N seconds  --rewind        Rewind input (stdin must be a file)  --probesize N   Forward only N bytes (with --rewind)
leantsgen --helpUsage: leantsgen [-c PACKETCOUNT]Output numbered MPEG TS packets on stdout.

Example

rtl_sdr -g 0 -f 315e6 -s 1000000 /tmp/test.tsleandvb --gui -v -d -f 1000e3 --sr 500e3 --cr 1/2 --derotate -4500 --anf 0 < /tmp/test.ts > mpeg.ts

https://www.rtl-sdr.com/transmitting-dvb-s-with-a-plutosdr-and-receiving-it-with-an-rtl-sdr/

http://www.pabr.org/radio/leandvb/leandvb.en.html

sigline.gif 
本文转自 K1two2 博客园博客,原文链接:http://www.cnblogs.com/k1two2/p/7566678.html
  ,如需转载请自行联系原作者
你可能感兴趣的文章
基于任务的Service Bus API
查看>>
leetcode 11. Container With Most Water
查看>>
Huffman树费用
查看>>
堆和栈的区别 (转贴)
查看>>
OpenGL实现通用GPU计算概述
查看>>
通过包名获取该包下的所有类
查看>>
FIND_IN_SET函数
查看>>
【JavaScript学习笔记】画图
查看>>
反向代理与直接访问Ping性能分析
查看>>
VS2008编写窗体重要事件
查看>>
Linux写时拷贝技术(copy-on-write)
查看>>
opencv视频读取问题
查看>>
C#教程之自己动手写映射第三节[反射]
查看>>
正则表达式中的换行符\n和回车符\r有什么区别?
查看>>
行情指标
查看>>
建设供内网访问的网站
查看>>
Design Mode 之 创建模式
查看>>
Windows服务器之间rsync同步文件
查看>>
offer档次排名,2014最新版
查看>>
3.0之后在LinearLayout里增加分割线
查看>>