<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>QT &#8211; JunkHack Feed</title>
	<link>/</link>
	<description>アリエクでポチった JUNKHACK</description>
	<lastBuildDate>Wed, 30 Dec 2015 19:47:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>/wp-content/uploads/2020/09/logo.png</url>
	<title>QT &#8211; JunkHack</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sigrok の Pulsview 0.3.0 動きました</title>
		<link>/2015/12/31/post-1966.html</link>
		
		<dc:creator><![CDATA[JunkHack]]></dc:creator>
		<pubDate>Wed, 30 Dec 2015 19:47:23 +0000</pubDate>
				<category><![CDATA[Aliexpress]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[QT]]></category>
		<guid isPermaLink="false">/?p=1966</guid>
							<description><![CDATA[とりあえず、なんとか動かしたいのでソースをコードも見ましたが、特に問題となりそうな部分もなく、ちょっと場を離れてから、brew版のをサイド入れてみることに。とりあえず、動作させることができました。 なんとか、今年中に出来 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>とりあえず、なんとか動かしたいのでソースをコードも見ましたが、特に問題となりそうな部分もなく、ちょっと場を離れてから、brew版のをサイド入れてみることに。とりあえず、動作させることができました。</p>
<p>なんとか、今年中に出来たのですっきり。</p>
<p>&#160;</p>
<p>0.3.0-git-5d73886 では、以下のようにトリガーが設定できて楽になりました。Runを押せばトリガーがでるまで、stop して採取されます。サンプル数を設定しておけば、採取されて停止します。ロジックアナライザーとしては基本機能だと思いますが、手持ちのハードでなんとか動いてよかったです。</p>
<p><img loading="lazy" decoding="async" title="７" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="７" src="/wp-content/uploads/2015/12/3662338e426b.png" width="640" height="359" /> </p>
<p>拡大すると、500ns とか取れています。1us 単位くらいまでは見れそうということがわかりました。</p>
<p><img loading="lazy" decoding="async" title="８" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="８" src="/wp-content/uploads/2015/12/d2bb6fa3e4a8.png" width="640" height="357" /> </p>
<p>サンプルレートは、2MHz 以上あげるとどうしても採取後にクルクル回って、操作を受け付けないスタック状態のような感じになります。コマンドライン版でドライバを指定してみると、以下のようです。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">$ sigrok-cli --show --driver fx2lafw
Driver functions:
    Logic analyzer
Scan options:
    conn
sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER.
sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER.
sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER.
sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER.
sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER.
sr: fx2lafw: Failed to get manufacturer string descriptor: LIBUSB_ERROR_OTHER.
fx2lafw:conn=28.2 - Saleae Logic with 8 channels: 0 1 2 3 4 5 6 7
Supported configuration options:
    continuous: 
    limit_samples: 0 (current)
    conn: 28.2 (current)
    samplerate - supported samplerates:
      20 kHz
      25 kHz
      50 kHz
      100 kHz
      200 kHz
      250 kHz
      500 kHz
      1 MHz
      2 MHz
      3 MHz
      4 MHz
      6 MHz
      8 MHz
      12 MHz
      16 MHz
      24 MHz
    Supported triggers: 0 1 r f e 
    captureratio: 0 (current)</pre>
<p>ここに出ているサンプリング周波数は採取できるはずなんですが、なぜか2MHz までしかとれません。</p>
<p>まぁ、最初の一台ですし、これで勉強させてもらって、物足りなければまた考えることにします。</p>
<p>&#160;</p>
<p>automator でシェルスクリプトを実行するものを作り、アイコンをつけて、app 化します。</p>
<p><img loading="lazy" decoding="async" title="6" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="6" src="/wp-content/uploads/2015/12/61.png" width="632" height="480" /> </p>
<p>python の環境変数を一度 unset して消去して、python3.4 とか3.x のをセットしてアプリをバックグランドで呼び出します。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">unset PYTHONPATH
export PYTHONPATH=&quot;/usr/local/lib/python3.4/site-packages/:$PYTHONPATH&quot;

/usr/local/Cellar/pulseview/HEAD/bin/pulseview &gt;/dev/null 2&gt;&amp;1 &amp;</pre>
<p>&#160;</p>
<p>配布用にするには、ライブラリのパスを全部書き換えないといけないので、やめました。このあたりのスキルは、もう少し勉強しないと嵌りそうです。</p>
<p><img loading="lazy" decoding="async" title="5" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="5" src="/wp-content/uploads/2015/12/51.png" width="276" height="423" /> </p>
<p>brew 版のインストールは、wiki に書いてあるとおりで以下のようです。</p>
<blockquote>
<p><a title="https://sigrok.org/wiki/Mac_OS_X" href="https://sigrok.org/wiki/Mac_OS_X" data-wpel-link="external" target="_blank" rel="external noopener noreferrer" class="wpel-icon-right">https://sigrok.org/wiki/Mac_OS_X<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
<p>$ brew tap rene-dev/sigrok<br />
    <br />$ brew install python3</p>
<p>$ brew install &#8211;HEAD libserialport</p>
<p>$ brew install &#8211;HEAD &#8211;with-libserialport libsigrok</p>
<p>$ brew install &#8211;HEAD libsigrokdecode</p>
<p>$ brew install &#8211;HEAD &#8211;with-libserialport sigrok-cli</p>
<p>$ brew install &#8211;HEAD pulseview</p>
</blockquote>
<p>ポイントとしては、マニュアルビルドしてソースから入れたものは一度、綺麗に消して、brew docter で問題をクリアにしてからやることと、以下の libsigrokdecode が２つ出てくるのでbrew のを無効にすることくらいです。</p>
<p>$ brew install &#8211;HEAD libsigrokdecode<br />
  <br />Error: Formulae found in multiple taps: </p>
<p> * homebrew/science/libsigrokdecode</p>
<p> * rene-dev/sigrok/libsigrokdecode</p>
<p>&#160;</p>
<p>$ brew untap homebrew/science</p>
<p>$ brew tap –repair</p>
<p>$ brew update</p>
<p>&#160;</p>
<p>あと、ファームウェアの格納場所は、デフォルトで</p>
<p>/usr/local/share/sigrok-firmware</p>
<p>になるので、ここにディレクトリを作成し、最新のファームウェアを入れておきます。これで最初のデバイスを見つけてファームがなくエラーになるのを迂回できます。エラーでも、落ちはしませんが。前回落ちたのは別の原因で、QT 関連のライブラリのパスが書き換わっていないのが原因でした。ltool で見ると、/usr 配下となっていました。そのほかの原因もあったとは思いますが、ライブラリの依存関係でおそらくは、brew 版のを見に行っていたのかもしれません。まぁ、詳細は不明です。</p>
<p>&#160;</p>
<p>ということで、とりあえずは動いてよかったです。トリガーもかけられるようになったし、インターフェイスは少しよくなった感じ。ボタンの配置とか。</p>
<p>&#160;</p>
<p>▼まとめ</p>
<p>・EZ-USB FX2LP CY7C68013A で、sigrok の pulsview は動作</p>
<p>・このハードは実質6ドルくらいなので、ロジックアナライザーとして最初の一台で遊ぶには十分</p>
<p>・0.3.0-git-f3697d3 は動作した</p>
<p>・トリガーがかけられるようになった</p>
<p>・少しインターフェイスがよくなった</p>
<p>・2Mhz サンプリングまでは出来ることを確認</p>
<p>・１チャンネル採取で500ns は採取できた。1us くらいが精度か？</p>
<p>・8チャンネル同時採取はまだやっていない</p>
<p>・ファームウェア格納場所は、/usr/local/share/sigrok-firmware</p>
<p>・brew 版で HEAD で入れているので、時期によっては動作しない場合もあるかも</p>
<p>・配布用に、ライブラリを書き換えるのはどうすれば楽になるのか？要研究</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>sigrok Pulsview を osx でビルドに挑戦</title>
		<link>/2015/12/30/post-1957.html</link>
		
		<dc:creator><![CDATA[JunkHack]]></dc:creator>
		<pubDate>Tue, 29 Dec 2015 20:04:41 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[QT]]></category>
		<guid isPermaLink="false">/?p=1957</guid>
							<description><![CDATA[PulseView の 0.3.0-git-f3697d3 をビルドしてみました。 結論から言えば、今のところ起動してすぐ落ちます。（涙） 無理やり、メニューから開いてみるとポートのオープンでこけているような感じです。a [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>PulseView の 0.3.0-git-f3697d3 をビルドしてみました。</p>
<p>結論から言えば、今のところ起動してすぐ落ちます。（涙）</p>
<p><img loading="lazy" decoding="async" title="1" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="1" src="/wp-content/uploads/2015/12/11.png" width="307" height="162" /> </p>
<p>無理やり、メニューから開いてみるとポートのオープンでこけているような感じです。about は見れました。</p>
<p><img loading="lazy" decoding="async" title="2" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="2" src="/wp-content/uploads/2015/12/21.png" width="600" height="400" /> </p>
<p>デバイスにもコネクトし、スキャンすれば出てきます。</p>
<p><img loading="lazy" decoding="async" title="3" style="border-top:0;border-right:0;border-bottom:0;float:none;margin-left:auto;border-left:0;display:block;margin-right:auto;" border="0" alt="3" src="/wp-content/uploads/2015/12/31.png" width="525" height="397" /> </p>
<p>しかし、OK を押すと最初のダイアログ表示が出て、OK を押すと、SIGABRT で落ちます。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">Process:         pulseview-bin [95174]
Path:            /Applications/PulseView.app/Contents/MacOS/./pulseview-bin
Identifier:      com.yourcompany.pulseview
Version:         0.3.0-git-5d73886 (???)
Code Type:       X86-64 (Native)
Parent Process:  sh [95171]
Responsible:     sh [95171]
User ID:         501

Date/Time:       2015-12-30 03:51:25.054 +0900
OS Version:      Mac OS X 10.9.5 (13F34)
Report Version:  11
Anonymous UUID:  C9AF270A-FCB7-7966-372A-2DF968A13DBE


Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
abort() called

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib            0x00007fff8f96d866 __pthread_kill + 10
1   libsystem_pthread.dylib           0x00007fff8bb5535c pthread_kill + 92
2   libsystem_c.dylib                 0x00007fff85eefb1a abort + 125
3   libglib-2.0.0.dylib               0x00000001022cae07 g_assertion_message + 387
4   libglib-2.0.0.dylib               0x00000001022cae65 g_assertion_message_expr + 94
5   libglib-2.0.0.dylib               0x00000001022e43a8 g_variant_type_info_check + 379
6   libglib-2.0.0.dylib               0x00000001022e41fe g_variant_type_info_get_type_string + 16
7   libglib-2.0.0.dylib               0x00000001022d7b7c g_variant_get_type + 22
8   pulseview-bin                     0x000000010112d4af pv::prop::Int::get_widget(QWidget*, bool) + 159 (int.cpp:72)
9   pulseview-bin                     0x000000010111733f pv::binding::Binding::add_properties_to_form(QFormLayout*, bool) const + 95 (binding.cpp:55)
10  pulseview-bin                     0x000000010111742d pv::binding::Binding::get_property_form(QWidget*, bool) const + 109 (binding.cpp:71)
11  pulseview-bin                     0x0000000101129599 pv::popups::DeviceOptions::DeviceOptions(std::__1::shared_ptr&lt;sigrok::Device&gt;, QWidget*) + 185 (qglobal.h:2436)
12  pulseview-bin                     0x000000010112f96b pv::toolbars::MainBar::update_device_config_widgets() + 171 (memory:4447)
13  pulseview-bin                     0x000000010112f82b pv::toolbars::MainBar::update_device_list() + 475 (list:565)
14  pulseview-bin                     0x00000001010eac9a pv::MainWindow::select_init_device() + 1594 (mainwindow.cpp:589)
15  pulseview-bin                     0x00000001010e759e pv::MainWindow::MainWindow(pv::DeviceManager&amp;, std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;, std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt;, QWidget*) + 606 (mainwindow.cpp:128)
16  pulseview-bin                     0x00000001010e2880 main + 848 (main.cpp:163)
17  libdyld.dylib                     0x00007fff89c435fd start + 1</pre>
<p>うーん、なんでしょうかね。</p>
<p>&#160;</p>
<p>とりあえず、いつかまた再チャレンジするときに備えて、ビルド手順を載せておきます。</p>
<p>▼環境</p>
<blockquote>
<p>osx 10.9.5</p>
<p>qt-opensource-mac-4.8.7</p>
<p>$ xcode-select -v<br />
    <br />xcode-select version 2333. </p>
<p>$ xcode-select -p<br />
    <br />/Applications/Xcode.app/Contents/Developer </p>
<p>$ xcode-select -print-path<br />
    <br />/Applications/Xcode.app/Contents/Developer </p>
<p>$ xcodebuild -version<br />
    <br />Xcode 6.2</p>
<p>Build version 6C131e</p>
<p>$ cmake &#8211;version<br />
    <br />cmake version 3.4.1</p>
<p>$ clang -v<br />
    <br />Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)</p>
<p>Target: x86_64-apple-darwin13.4.0</p>
<p>Thread model: posix</p>
</blockquote>
<p>こんな感じの環境です。ビルド手順は、基本以下のとおりです。cmake するオプションは少し買えました。</p>
<blockquote>
<p><a title="https://sigrok.org/wiki/Mac_OS_X" href="https://sigrok.org/wiki/Mac_OS_X" data-wpel-link="external" target="_blank" rel="external noopener noreferrer" class="wpel-icon-right">https://sigrok.org/wiki/Mac_OS_X<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
</blockquote>
<p>前準備として、Qtの4系最終の4.8.7 を入れておきます。</p>
<p>あと、ports で以下を入れておきます。</p>
<blockquote>
<p>$ sudo port selfupdate<br />
    <br />$ sudo port install boost libusb libzip libftdi0</p>
<p>$ sudo port install autoconf automake cmake glib2 python33 libtool pkgconfig</p>
</blockquote>
<p>環境変数を反映しておきます。</p>
<blockquote>
<p>$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/</p>
</blockquote>
<p>libserialport</p>
<blockquote>
<p>$ git clone git://sigrok.org/libserialport<br />
    <br />$ cd libserialport</p>
<p>$ ./autogen.sh</p>
<p>$ ./configure</p>
<p>$ make</p>
<p>$ sudo make install</p>
</blockquote>
<p>以下に入りました。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">    HOPE:libserialport junkhack$ sudo make install
      CC       serialport.lo
      CC       macosx.lo
      CCLD     libserialport.la
     /usr/local/bin/gmkdir -p '/usr/local/lib'
     /bin/sh ./libtool --silent  --mode=install /usr/local/bin/ginstall -c   libserialport.la '/usr/local/lib'
     /usr/local/bin/gmkdir -p '/usr/local/include'
     /usr/local/bin/ginstall -c -m 644 libserialport.h '/usr/local/include'
     /usr/local/bin/gmkdir -p '/usr/local/lib/pkgconfig'
     /usr/local/bin/ginstall -c -m 644 libserialport.pc '/usr/local/lib/pkgconfig'</pre>
<p>次、libsigrok です。</p>
<p>libsigrok</p>
<blockquote>
<p>$ git clone git://sigrok.org/libsigrok<br />
    <br />$ cd libsigrok</p>
<p>$ ./autogen.sh</p>
<p>$ ./configure</p>
<p>$ make</p>
<p>$ sudo make install</p>
</blockquote>
<p>以下に入りました。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">    HOPE:libsigrok junkhack$ sudo make install
     /usr/local/bin/gmkdir -p '/usr/local/lib'
     /bin/sh ./libtool --silent  --mode=install /usr/local/bin/ginstall -c   libsigrok.la bindings/cxx/libsigrokcxx.la '/usr/local/lib'
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /usr/local/lib/libsigrok.a(fallback.o) has no symbols
     /usr/local/bin/gmkdir -p '/usr/local/include/libsigrokcxx'
     /usr/local/bin/ginstall -c -m 644 bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp '/usr/local/include/libsigrokcxx'
     /usr/local/bin/gmkdir -p '/usr/local/include/libsigrok'
     /usr/local/bin/ginstall -c -m 644 include/libsigrok/libsigrok.h include/libsigrok/proto.h '/usr/local/include/libsigrok'
     /usr/local/bin/gmkdir -p '/usr/local/include/libsigrokcxx'
     /usr/local/bin/ginstall -c -m 644 bindings/cxx/include/libsigrokcxx/enums.hpp '/usr/local/include/libsigrokcxx'
     /usr/local/bin/gmkdir -p '/usr/local/include/libsigrok'
     /usr/local/bin/ginstall -c -m 644 include/libsigrok/version.h '/usr/local/include/libsigrok'
     /usr/local/bin/gmkdir -p '/usr/local/lib/pkgconfig'
     /usr/local/bin/ginstall -c -m 644 libsigrok.pc bindings/cxx/libsigrokcxx.pc '/usr/local/lib/pkgconfig'
    HOPE:libsigrok junkhack$ </pre>
<p>次、コマンドライン版のです。</p>
<p>sigrok-cli</p>
<blockquote>
<p>$ git clone git://sigrok.org/sigrok-cli<br />
    <br />$ cd sigrok-cli</p>
<p>$ ./autogen.sh</p>
<p>$ ./configure</p>
<p>$ make</p>
<p>$ sudo make install</p>
</blockquote>
<p>以下に入りました。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">    HOPE:sigrok-cli junkhack$ sudo make install
     /usr/local/bin/gmkdir -p '/usr/local/bin'
      /usr/local/bin/ginstall -c sigrok-cli '/usr/local/bin'
     /usr/local/bin/gmkdir -p '/usr/local/share/man/man1'
     /usr/local/bin/ginstall -c -m 644 doc/sigrok-cli.1 '/usr/local/share/man/man1'
    HOPE:sigrok-cli junkhack$ </pre>
<p>次が、問題のやつです。</p>
<p>PulseView</p>
<blockquote>
<p>$ git clone git://sigrok.org/pulseview<br />
    <br />$ cd pulseview</p>
<p>$ cmake -DENABLE_TESTS=n -DDISABLE_WERROR=y .</p>
<p>$ make</p>
<p>$ sudo make install</p>
</blockquote>
<p>cmake でテストをn にするか、警告を無視するかをチェックし、進みます。何か、未定義の変数や宣言などがあるようです。直すのが面倒だったので、とりあえず。</p>
<p>以下に入りました。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">    HOPE:pulseview junkhack$ sudo make install
    Password:
    [ 54%] Built target pulseview
    [100%] Built target pulseview-test
    Install the project...
    -- Install configuration: &quot;RelWithDebInfo&quot;
    -- Installing: /usr/local/bin/pulseview
    -- Installing: /usr/local/share/man/man1/pulseview.1
    HOPE:pulseview junkhack$ </pre>
<p>で、いきなり実行するも、以下のように。</p>
<blockquote>
<p>$ ll /usr/local/bin/pulseview<br />
    <br />-rwxr-xr-x&#160; 1 root&#160; admin&#160; 1913672 12 30 00:57 /usr/local/bin/pulseview</p>
<p>$ /usr/local/bin/pulseview<br />
    <br />Failed to import the site module</p>
<p>Your PYTHONPATH points to a site-packages dir for Python 2.x but you are running Python 3.x!</p>
<p>&#160;&#160;&#160;&#160; PYTHONPATH is currently: &quot;/usr/local/lib/python2.7/site-packages&quot;</p>
<p>&#160;&#160;&#160;&#160; You should `unset PYTHONPATH` to fix this.</p>
</blockquote>
<p>otool でライブラリのパスを見ると、以下のようです。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">$ otool -L /usr/local/bin/pulseview
/usr/local/bin/pulseview:
    /opt/local/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    /opt/local/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    /opt/local/lib/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    QtSvg.framework/Versions/4/QtSvg (compatibility version 4.8.0, current version 4.8.7)
    QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7)
    QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7)
    /usr/local/lib/libsigrokcxx.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    /usr/local/lib/libsigrok.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    /usr/local/lib/libglibmm-2.4.1.dylib (compatibility version 5.0.0, current version 5.0.0)
    /opt/local/lib/libgobject-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
    /usr/local/lib/libsigc-2.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/local/lib/libsigrokdecode.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    /opt/local/lib/libglib-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
    /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.4.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)</pre>
<p>うーん、Python3.x でということですが、ありません。あと、以下の３つはどこ探してもありませんでしたが、、、</p>
<blockquote>
<p>QtSvg.framework<br />
    <br />QtGui.framework</p>
<p>QtCore.framework</p>
</blockquote>
<p>ちなみに、Qt5.5 でビルドしたときは、以下のようでした。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">    ----- qt5.5
    HOPE:MacOS junkhack$ otool -L pulseview 
    pulseview:
        /opt/local/lib/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
        /opt/local/lib/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
        /opt/local/lib/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
        /opt/local/lib/libboost_unit_test_framework-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/QtSvg.framework/Versions/5/QtSvg (compatibility version 5.5.0, current version 5.5.1)
        /usr/local/lib/libsigrokcxx.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /usr/local/lib/libsigrok.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /usr/local/lib/libglibmm-2.4.1.dylib (compatibility version 5.0.0, current version 5.0.0)
        /opt/local/lib/libgobject-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
        /usr/local/lib/libsigc-2.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/local/lib/libsigrokdecode.2.dylib (compatibility version 3.0.0, current version 3.0.0)
        /opt/local/lib/libglib-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
        /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.4.0)
        @rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.5.0, current version 5.5.1)
        @rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.5.0, current version 5.5.1)
        @rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.5.0, current version 5.5.1)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
    HOPE:MacOS junkhack$ </pre>
<p>これは探せばありました。なんで、Qt4 だとないんでしょうか？何か入れ忘れたのですかね。ちなみに、0.2.0 のELIAS さんのビルドしたものは、以下のようです。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">$ otool -L pulseview-bin 
pulseview-bin:
    @executable_path/../Frameworks/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    @executable_path/../Frameworks/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    @executable_path/../Frameworks/QtSvg.framework/Versions/4/QtSvg (compatibility version 4.8.0, current version 4.8.6)
    @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.6)
    @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.6)
    @executable_path/../Frameworks/libsigrokxx.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    @executable_path/../Frameworks/libsigrok.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    @executable_path/../Frameworks/libglibmm-2.4.1.dylib (compatibility version 5.0.0, current version 5.0.0)
    @executable_path/../Frameworks/libgobject-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.0.0)
    @executable_path/../Frameworks/libglib-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.0.0)
    @executable_path/../Frameworks/libintl.8.dylib (compatibility version 10.0.0, current version 10.2.0)
    @executable_path/../Frameworks/libsigc-2.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/libsigrokdecode.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    @executable_path/../Frameworks/Python.framework/Versions/3.4/Python (compatibility version 3.4.0, current version 3.4.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)</pre>
<p>Frameworks は、これを拝借します。</p>
<p>アプリケーション直下にコピーして上書きしてきます。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">$ cd /Applications/PulseView.app/Contents

$ pwd
/Applications/PulseView.app/Contents

cp -p /opt/local/lib/libboost_filesystem-mt.dylib ./Frameworks
cp -p /opt/local/lib/libboost_system-mt.dylib ./Frameworks
cp -p /opt/local/lib/libboost_thread-mt.dylib ./Frameworks

cp -p /usr/local/lib/libsigrokcxx.2.dylib ./Frameworks
cp -p /usr/local/lib/libsigrok.2.dylib ./Frameworks
cp -p /usr/local/lib/libglibmm-2.4.1.dylib ./Frameworks
cp -p /opt/local/lib/libgobject-2.0.0.dylib ./Frameworks
cp -p /usr/local/lib/libsigc-2.0.0.dylib ./Frameworks
cp -p /usr/local/lib/libsigrokdecode.2.dylib ./Frameworks
cp -p /opt/local/lib/libglib-2.0.0.dylib ./Frameworks
cp -p /opt/local/lib/libintl.8.dylib ./Frameworks</pre>
<p>Qt で作ったのをosx でライブラリにリンクするツールとか、そういうのはないのでしょうかね。</p>
<p>バイナリのライブラリは以下のコマンドで、書き換えられます。</p>
<blockquote>
<p>install_name_tool -change 変更したいディレクトリ そこに新しく書き込みたいディレクトリ オブジェクトファイルの名前</p>
</blockquote>
<p>パスを切り出して、テキストファイルで編集し、</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">HOPE:MacOS junkhack$ otool -L ./pulseview | cut -f 1 -d ' ' | cut -f 2
./pulseview:
/opt/local/lib/libboost_filesystem-mt.dylib
/opt/local/lib/libboost_system-mt.dylib
/opt/local/lib/libboost_thread-mt.dylib
QtSvg.framework/Versions/4/QtSvg
QtGui.framework/Versions/4/QtGui
QtCore.framework/Versions/4/QtCore
/usr/local/lib/libsigrokcxx.2.dylib
/usr/local/lib/libsigrok.2.dylib
/usr/local/lib/libglibmm-2.4.1.dylib
/opt/local/lib/libgobject-2.0.0.dylib
/usr/local/lib/libsigc-2.0.0.dylib
/usr/local/lib/libsigrokdecode.2.dylib
/opt/local/lib/libglib-2.0.0.dylib
/opt/local/lib/libintl.8.dylib
/usr/lib/libc++.1.dylib
/usr/lib/libSystem.B.dylib
HOPE:MacOS junkhack$ </pre>
<p>以下のようなコマンドを作りました。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">cd MacOS/
cp pulseview pulseview_bup487

install_name_tool -change /opt/local/lib/libboost_filesystem-mt.dylib @executable_path/../Frameworks/libboost_filesystem-mt.dylib ./pulseview
install_name_tool -change /opt/local/lib/libboost_system-mt.dylib @executable_path/../Frameworks/libboost_system-mt.dylib ./pulseview
install_name_tool -change /opt/local/lib/libboost_thread-mt.dylib @executable_path/../Frameworks/libboost_thread-mt.dylib ./pulseview
install_name_tool -change QtSvg.framework/Versions/4/QtSvg @executable_path/../Frameworks/QtSvg.framework/Versions/4/QtSvg ./pulseview
install_name_tool -change QtGui.framework/Versions/4/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui ./pulseview
install_name_tool -change QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore ./pulseview
install_name_tool -change /usr/local/lib/libsigrokcxx.2.dylib @executable_path/../Frameworks/libsigrokcxx.2.dylib ./pulseview
install_name_tool -change /usr/local/lib/libsigrok.2.dylib @executable_path/../Frameworks/libsigrok.2.dylib ./pulseview
install_name_tool -change /usr/local/lib/libglibmm-2.4.1.dylib @executable_path/../Frameworks/libglibmm-2.4.1.dylib ./pulseview
install_name_tool -change /opt/local/lib/libgobject-2.0.0.dylib @executable_path/../Frameworks/libgobject-2.0.0.dylib ./pulseview
install_name_tool -change /usr/local/lib/libsigc-2.0.0.dylib @executable_path/../Frameworks/libsigc-2.0.0.dylib ./pulseview
install_name_tool -change /usr/local/lib/libsigrokdecode.2.dylib @executable_path/../Frameworks/libsigrokdecode.2.dylib ./pulseview
install_name_tool -change /opt/local/lib/libglib-2.0.0.dylib @executable_path/../Frameworks/libglib-2.0.0.dylib ./pulseview
install_name_tool -change /opt/local/lib/libintl.8.dylib @executable_path/../Frameworks/libintl.8.dylib ./pulseview</pre>
<p>パスを書き換えました。以下のようになっているはずです。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">$ otool -L pulseview-bin 
pulseview-bin:
    @executable_path/../Frameworks/libboost_filesystem-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    @executable_path/../Frameworks/libboost_system-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    @executable_path/../Frameworks/libboost_thread-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
    @executable_path/../Frameworks/QtSvg.framework/Versions/4/QtSvg (compatibility version 4.8.0, current version 4.8.7)
    @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.7)
    @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.7)
    @executable_path/../Frameworks/libsigrokcxx.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    @executable_path/../Frameworks/libsigrok.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    @executable_path/../Frameworks/libglibmm-2.4.1.dylib (compatibility version 5.0.0, current version 5.0.0)
    @executable_path/../Frameworks/libgobject-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
    @executable_path/../Frameworks/libsigc-2.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
    @executable_path/../Frameworks/libsigrokdecode.2.dylib (compatibility version 3.0.0, current version 3.0.0)
    @executable_path/../Frameworks/libglib-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
    @executable_path/../Frameworks/libintl.8.dylib (compatibility version 10.0.0, current version 10.4.0)
    /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)</pre>
<p>先輩が作ったのは、MacOS 配下に２つあって、以下のようです。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">$ ll
total 1936
-rwxr-xr-x@ 1 junkhack  admin     187 11  3  2014 pulseview
-rwxr-xr-x@ 1 junkhack  admin  983748 11  3  2014 pulseview-bin</pre>
<p>ビルドしたものを pulseview-bin に書き換えました。bin が付いていないのは、bash のバイナリファイルのようです。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">HOPE:MacOS junkhack$ hexdump -C pulseview
00000000  23 21 2f 62 69 6e 2f 73  68 0a 0a 44 49 52 3d 22  |#!/bin/sh..DIR=&quot;|
00000010  24 28 64 69 72 6e 61 6d  65 20 22 24 30 22 29 22  |$(dirname &quot;$0&quot;)&quot;|
00000020  0a 63 64 20 22 24 44 49  52 22 0a 0a 65 78 70 6f  |.cd &quot;$DIR&quot;..expo|
00000030  72 74 20 50 59 54 48 4f  4e 48 4f 4d 45 3d 22 2e  |rt PYTHONHOME=&quot;.|
00000040  2e 2f 46 72 61 6d 65 77  6f 72 6b 73 2f 50 79 74  |./Frameworks/Pyt|
00000050  68 6f 6e 2e 66 72 61 6d  65 77 6f 72 6b 2f 56 65  |hon.framework/Ve|
00000060  72 73 69 6f 6e 73 2f 33  2e 34 2f 22 0a 65 78 70  |rsions/3.4/&quot;.exp|
00000070  6f 72 74 20 53 49 47 52  4f 4b 44 45 43 4f 44 45  |ort SIGROKDECODE|
00000080  5f 44 49 52 3d 22 2e 2e  2f 73 68 61 72 65 2f 6c  |_DIR=&quot;../share/l|
00000090  69 62 73 69 67 72 6f 6b  64 65 63 6f 64 65 2f 64  |ibsigrokdecode/d|
000000a0  65 63 6f 64 65 72 73 2f  22 0a 0a 2e 2f 70 75 6c  |ecoders/&quot;.../pul|
000000b0  73 65 76 69 65 77 2d 62  69 6e 0a                 |seview-bin.|
000000bb
HOPE:MacOS junkhack$ </pre>
<p>こういう感じで起動してるんですね。なるほどです。Frameworks 以下のPython から呼び出しているんですね。pulsview を拝借し、ビルドしたものは、pulseview-bin にファイル名を変更しておきます。</p>
<p>バージョンをInfo.plist に加えておきます。</p>
<pre class="brush: cpp; gutter: false; toolbar: false; collapse: true; auto-links: false; smart-tabs: false;">$ cat Info.plist 
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE plist SYSTEM &quot;file://localhost/System/Library/DTDs/PropertyList.dtd&quot;&gt;
&lt;plist version=&quot;0.9&quot;&gt;
&lt;dict&gt;
    &lt;key&gt;NSPrincipalClass&lt;/key&gt;
    &lt;string&gt;NSApplication&lt;/string&gt;
    &lt;key&gt;CFBundleIconFile&lt;/key&gt;
    &lt;string&gt;sigrok.icns&lt;/string&gt;
    &lt;key&gt;CFBundlePackageType&lt;/key&gt;
    &lt;string&gt;APPL&lt;/string&gt;
    &lt;key&gt;CFBundleGetInfoString&lt;/key&gt;
    &lt;string&gt;PulseView is a Qt based logic analyzer GUI for sigrok.&lt;/string&gt;
    &lt;key&gt;CFBundleSignature&lt;/key&gt;
    &lt;string&gt;????&lt;/string&gt;
    &lt;key&gt;CFBundleExecutable&lt;/key&gt;
    &lt;string&gt;pulseview&lt;/string&gt;
    &lt;key&gt;CFBundleIdentifier&lt;/key&gt;
    &lt;string&gt;com.yourcompany.pulseview&lt;/string&gt;
    &lt;key&gt;CFBundleShortVersionString&lt;/key&gt;
    &lt;string&gt;0.3.0-git-5d73886&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;</pre>
<p>さて、これでいいはずですが、、、、結果は冒頭に書いたとおりです。ちなみに、Qt5.5 でも似たような感じでした。</p>
<p>git リポジトリを見ると、この24時間くらいでそこそこ手が入っているようです。</p>
<blockquote>
<p>pulseview.git / summary<br />
    <br /><a title="http://sigrok.org/gitweb/?p=pulseview.git;a=summary" href="http://sigrok.org/gitweb/?p=pulseview.git;a=summary" data-wpel-link="external" target="_blank" rel="external noopener noreferrer" class="wpel-icon-right">http://sigrok.org/gitweb/?p=pulseview.git;a=summary<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
</blockquote>
<p>あと、オフィシャルのwiki にもビルドするのに必要な要件などがまとまっているようです。</p>
<blockquote>
<p>sigrok wiki : Building<br />
    <br /><a title="https://sigrok.org/wiki/Building#Building_from_source" href="https://sigrok.org/wiki/Building#Building_from_source" data-wpel-link="external" target="_blank" rel="external noopener noreferrer" class="wpel-icon-right">https://sigrok.org/wiki/Building#Building_from_source<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
</blockquote>
<p>▼まとめ</p>
<p>・PulseView の 0.3.0-git-f3697d3 では、だめだった<br />
  <br />・デバイスのオープンでこけているようです</p>
<p>・libglib-2.0.0.dylib から こけている感じ。</p>
<p>・ライブラリのコピーが悪いのかも</p>
<p>・0.2.0 のソースで試してだめなら、Qt4 のライブラリの入れ方などが悪いのかも。</p>
<p>・Qt で osx の実行ファイルを作るユーティリティーとかないかなぁ</p>
<p>・クリーンインストールしたosx でやってみたいが、その環境がない</p>
<p>・Qt4 の QtGui とか QtCore とかの Framework はどこにあるのでしょうか？</p>
<p>・ソースに手をつける以前の問題で疲れ果てた</p>
<p>&#160;</p>
<p>参考</p>
<p>Qt for OS X &#8211; Deployment<br />
  <br /><a title="http://doc.qt.io/qt-5/osx-deployment.html" href="http://doc.qt.io/qt-5/osx-deployment.html" class="broken_link wpel-icon-right" data-wpel-link="external" target="_blank" rel="external noopener noreferrer">http://doc.qt.io/qt-5/osx-deployment.html<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
<p>&#160;</p>
<p>Building OSX App Bundle<br />
  <br /><a title="http://stackoverflow.com/questions/1596945/building-osx-app-bundle" href="http://stackoverflow.com/questions/1596945/building-osx-app-bundle" data-wpel-link="external" target="_blank" rel="external noopener noreferrer" class="wpel-icon-right">http://stackoverflow.com/questions/1596945/building-osx-app-bundle<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
<p>
  <br />sigrok bugzilla</p>
<p><a title="http://sigrok.org/bugzilla/describecomponents.cgi?product=PulseView" href="http://sigrok.org/bugzilla/describecomponents.cgi?product=PulseView" data-wpel-link="external" target="_blank" rel="external noopener noreferrer" class="wpel-icon-right">http://sigrok.org/bugzilla/describecomponents.cgi?product=PulseView<span class="wpel-icon wpel-image wpel-icon-1"></span></a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
