投稿

Linux: (.text+0x20): undefined reference to `main'

イメージ
CMake中に組み込まれている関係でソースからscipyをビルドしたいのに以下のようなエラーが出て止まってしまう。 gfortran -Wall -g build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/scipy/fftpack/_fftpackmodule.o build/temp.linux-x86_64-2.7/scipy/fftpack/src/zfft.o build/temp.linux-x86_64-2.7/scipy/fftpack/src/drfft.o build/temp.linux-x86_64-2.7/scipy/fftpack/src/zrfft.o build/temp.linux-x86_64-2.7/scipy/fftpack/src/zfftnd.o build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/scipy/fftpack/src/dct.o build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/scipy/fftpack/src/dst.o build/temp.linux-x86_64-2.7/build/src.linux-x86_64-2.7/build/src.linux-x86_64-2.7/scipy/fftpack/fortranobject.o -L/opt/intel/ext_tools/lib -Lbuild/temp.linux-x86_64-2.7 -ldfftpack -lfftpack -lpython2.7 -lgfortran -o build/lib.linux-x86_64-2.7/scipy/fftpack/_fftpack.so /usr/lib/../lib64/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' collect2:  エラー : ld  はステータス  1  で終了しました error: Command "gfortran -Wall -g build/tem...

cmakeエラー:Error running cmake::LoadCache(). Aborting. + 正しいバージョンが表示されない

イメージ
cmakeローカルインストール後、ccmakeしようとしたら Error running cmake::LoadCache(). Aborting. というエラーで一蹴される。 export CMAKE_ROOT=/xxx/share/cmake-3.xx/ とパスを通していなかっただけだったが、 ccmake --version とかやってもずっと古いバージョンの方が出続ける。 これはキャッシュの問題だったようで、 hash -r でキャッシュクリアしたらようやく新しいバージョンとして認識された。

cmake エラー:Unknown arguments specified

イメージ
久しぶりにコードをリコンパイルしようとしたら見慣れないエラーに衝突。 CMake Error at xxx.cmake:240 (if): if given arguments: "ALL" "IN_LIST" "Boost_FIND_COMPONENTS" Unknown arguments specified 結論、cmakeのバージョン摩擦が起きていた。 今回は、cmakeの別バージョンをローカルインストールした後、アンインストールの際にライブラリを残してしまったのが原因だったよう。 find ~/ | grep "cmake" で引っかかったライブラリをひたすら消したら通った。

[GarageBand] チャイムにオルゴール...自分で音源作成してみた [TX16Wx]

イメージ
バージョンのせいかTubular bellsもmusic boxもみあたらないので、音のサンプルだけ自分でとってきてGarageBandに組み込むことにしました。 単音だったら、音ファイルをそのままGarageBandの楽器の欄の下の空欄にドラッグ&ドロップすれば好きに使えるけれど、音階のある楽器だといちいち音階ごとに違う楽器として扱ったりピッチ調整したり泥臭いことこの上ないから、ちゃんとライブラリにしないと実用的じゃない。 そこで、今回は無料サンプラー「TX16Wx」を使って音のサンプリングをしてみた。 このサンプラーについては、すでにネット上に良い記事があったのですが、細かいところがわからなかったのでメモがてら書いておきます。 まず、 TX16Wx をDLしてきて、インストール。 続いて、GarageBandからTX16Wxを開く。 適当な楽器を作って、楽器のアイコンダブルクリックでコントロールパネルを開いたら、プラグインタブからTX16Wxを選択。 そうすると、別ウィンドウでサンプラーが開くので、とりあえず「Regions」と「Waves」のスイッチはオンにして(図の青くなっているボタン)、左のフォルダから.wavファイルをドラッグ&ドロップ。四角の縁を掴んで変形して、適当な音の領域に割り当てます。 打楽器のように、各キーごとに違う.wavファイルを割り当てることもできるけど、音程をキーに合わせて変えるには、図の赤丸の「Root」に元音源の音程を記入します(キーボード入力ができない場合、Rootのところを掴んでドラッグすると選択できるかも)。 ただし、このピッチ変更、単純にスロー・早送りしてるだけっぽく、とても雑。クリックノイズが入ったりする。 なので割り当てを複数の領域に分けたほうが良いのだが、もし単音しかなければ、他のツールでピッチを変更して別の.wavファイルにした方がマシかも。例えば、Audacityでピッチ変更するとか。 あと、打楽器系だと要らないプロセスだけど、音を伸ばすには「loop」を割り当てる必要がある。一番簡単には、「wave」ウィンドウ左上の歯車をクリック → Auto-detect new loop で割り当てられるけど、この設定を凝るとなかなか大変。。気が向いたら凝ってみようと思う。 これができたら、あとはサンプラーウィンドウを閉じて...

[Blender] 「フラクタル」を使う練習 ~ 唐揚げ ~

イメージ
自分用メモ。Blenderのフラクタル機能を利用して唐揚げを作ります。  以下は完成図。 ---------------------------スポンサー--------------------------- -------------------------------------------------------------------- まず、Ico sphereを導入。(ツールバーがでない場合Tを押してみて)      Subdevisionは1が良いと思いますが、丸っこい唐揚げなら2でも可。   編集(Edit)モードにして、Toolsタブのsubdivisionを実行、Fractal変数を適当に調節して大体の形を決めます。Fractalの下の、Along Normalパラメータは1にしておくと動径方向にしか動かなくなるのでいい感じです。 そして同じ工程をもう一回、   ただし今度は、フラクタルは控えめにして、スムーズを少しかける。  最後にSmooth vertexを一回かましておくとより綺麗。     これでmeshは完成。  ここからはおまけみたいなものですが、唐揚げにするために重要な、テクスチャ画像を用意します。 唐揚げの写真を四角に切り取ります。GIMPのような画像ソフトに実装されているシームレス化という機能を使うと、縁の違和感が少なくなるように色を自動補完してくれます。 下の画像の左がシームレス化前のテクスチャの右上部分、右が後のもの。    これを貼り付けるときは、UVを球状展開するともっとも自然だと思います(こだわる場合手で調整)。 materialとtextureを設定して...             UVをsphereで展開。        UVの調整とか。      今回はローポリ仕様だけど、テクスチャの効果でまあまあ唐揚げに見えますね。フラクタルはランダムなので、いくらでも違う形のができます。

[Unity] 基本的な関数(in c#)

イメージ
Unityで神経衰弱を作る時に使ったC#関数をメモしておきます。 ---------------------------スポンサー--------------------------- -------------------------------------------------------------------- 連続する整数の配列を生成 istartからifinまでの整数列をlistに格納する 作り方がわからなかったので作ったけど...このくらい標準でありそうだな リストを事前に宣言しておく必要がある。 void intList (List list, int istart, int ifin){ int l; for (l = istart; l <= ifin; l++) { list.Add (l); } } ゲームオブジェクトを指定の座標に移動 objを(x,y,z)に移動 void setpos (GameObject obj, float x, float y, float z){ Vector3 pos = obj.transform.position; pos.x = x; pos.y = y; pos.z = z; obj.transform.position = pos; } ゲームオブジェクトの大きさを指定  絶対サイズの指定。直接変更は不可なので、ローカル変数(相対的にどのくらい大きくするか)の方を、元々のサイズ(読み取り専用)を利用して絶対サイズを指定しているかのように調整している。 void setsize (GameObject obj, float x, float y, float z){ Vector3 loc = obj.transform.localScale; Vector3 scale = obj.transform.lossyScale; loc.x = x/scale.x; loc.y = y/scale.y; loc.z = z/scale.z; obj.transform.localScale = loc; } ...

Zenfone Live (L1) が bootloaderしかろくに動かない状況になったけど復活した

イメージ
タイトル通りですが(当人にとっては)大変なことになりました。 スマホが重くなったので電源長押しで再起動したところ、  タスクバーが一段階しか降りてこず、アイコンが一部しか表示されない。通知も表示されない  ホームボタンとマルチタスクボタンが反応しない  開発者オプションが使えない。デベロッパー向けオプションはこのユーザーには表示されませんとだけ表示される  そのせいかUSBデバッグが使えないしadbも使えない(adb devicesに引っかからない) さらにその後時間差で  wifiが使えなくなる  カメラが使えなくなる  一部のアプリが使えなくなる   もうこれはスマホではなく文鎮一歩手前です... しかも焦ってリカバリーを違う機種用のイメージで上書き(当然起動しない)してしまうという初歩的ミスをやらかしました。 そこで復活させるためにやったことを記録しておきます。   まず落ち着いてリカバリーを焼き直す   私の場合fastbootモードで起動した時「fastboot devices」に反応してくれたのが救いでした。 これで、 fastboot recovery.img でリカバリーを取り戻せます。 もしrecovery.imgがあれば。 ない場合は公開されているものをネットの大海から探すか、私と同じように TWRP経由 か...。 焼き直し方がわからないと言う方は、...いや、まあそんな人はそもそもリカバリー消したりしないか。 私の場合リカバリーをTWRPにしていたのですが、確実にファクトリーリセットをするためにオリジナルのに戻しました。この時オリジナルのリカバリーイメージをどっかにやってしまって焦りました(対処法は こちら )。 データのバックアップを取り、ファクトリーリセット and/or システムアップデート   リカバリーメニューから「wipe date/factory reset」で工場出荷時の状態にリセット。 自分の場合、systemがおかしいのが不安だったので、念押しで ASUS公式 からFirmwareをとってきてSDカードにzipのまま入れておき、続けて「apply update from microSD」でアップデートを手動...