RaspberryPi でC++14を使う(GCC4.9 (C++14)のインストール)

stofが使えなかったので。stofはc++11以降らしいです。


※以下、実行環境はRaspberryPi ModelB+。他のPiで適応されるかどうかは不明。

2016/09/09追記:
ReleaseDateが2016-05-27以降のRaspbianのSDカードのイメージファイルであれば、すでにjessieになっています。
つまり、現在ダウンロードできる最新のイメージを使えば、C++11は使えるはずです。


普通に「apt-get install g++」と実行してもGCC4.6辺りまでしかインストールされない。
アップデート状況によっては、GCC4.7もインストールできるのかな。
参照:https://www.raspberrypi.org/forums/viewtopic.php?f=33&t=22938
Try the following:
sudo apt-get install g++-4.7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
sudo update-alternatives --config gcc

共存してしまっているので、優先順位を変更しましょう、という例です。GCC4.7が欲しいなら、これで十分でしょう。


しかしapt-get install g++-4.9は通らないので、別の方法。次のリンク。

Raspberry Pi - Install GCC 4.9 and compile C++14 programs
https://solarianprogrammer.com/2015/01/13/raspberry-pi-raspbian-install-gcc-compile-cpp-14-programs/

1 sudo apt-get update
2 sudo apt-get upgrade

Next, open /etc/apt/sources.list in your favorite text editor and replace wheezy with jessie:
(好きなテキストエディタ(vimやnano等)でファイルを開き、wheezyをjessieに書き換えよ)
1 sudo vim /etc/apt/sources.list

1 sudo apt-get update

1 sudo apt-get install gcc-4.9 g++-4.9

Last step is to revert back from Jessie to Wheezy, open /etc/apt/sources.list and replace jessie with wheezy, after that do an update of your package list:
(書き換えたjessieをwheezyに戻せ)
1 sudo vim /etc/apt/sources.list
2 sudo apt-get update

個人的には、nanoの方が分かりやすいです。下にコマンド表出てるし。

g++ --versionでチェック。これでアップデ… oh...

g++ (Raspbian 4.7.3-11+rpi1) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

インストールされているかチェック。

ls /usr/bin/gcc*

4.9が存在しているのにもかかわらず更新されていないなら、1つ目で示したGCC4.7と同等の操作が必要かも。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
sudo update-alternatives --config gcc
(ここで、gcc-4.9を選択)

g++ --versionでチェック。

g++ (Raspbian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


g++ -o ... -std=c++11 ... お!動いた!
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : Linux raspberrypi

[WP]no.004 二分木探索、クイックソート@HSP

木構造の作成をHSPでやるよ。

製作時間:暁のそわそわx5(30min)

木構造の例として二分木を挙げました。
二分木探索を生成し、中順序探索を行い、ソートします。いわゆる木構造を使ったクイックソートです。
HSPには参照型が無いので、インデックスを格納する配列変数を定義してそれっぽくします。

どうでもいいですが、初めて再帰関数を使わずに書いた、特に中順序探索は無計画だったので滅茶苦茶です。
ビットをシフトして、フラグを格納する領域を無理やり作る荒業とか。

クイックソート目当ての方は別のホームページを参照してください。

画像の埋め込み、もっと簡単にできないかな…fc2。
we20150625

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : HSP3 アルゴリズムとデータ構造

Intel(R) HD Graphics 3000 でGTA4を動かす

Intel(R) HD Graphics 3000 (内蔵)
ゲーム向きではないと分かっていても、ゲームが動かないと「うわあああああ」ってなりますね。

・Grand Theft Auto 4
 大部分のテクスチャが透明、ゲームできない。

 GTA4はおそらくVRAM不足だろう(と考えました)。
このグラフィックカードはVRAMをメインメモリに動的確保するようですが、静的確保した領域しか見ていないのでは…?

解決策載ってました。下の方にあります
http://www.tomshardware.com/forum/117861-13-works
引用

It looks like GTA IV is only detecting about 56 MB of your graphics memory.

Go to your GTA IV folder, and see if there is a .txt file called "commandline". If there is, and it says something that starts with "memrestrict", close it and make a backup copy. Then, clear the command line, then paste this: -noprecache -nomemrestrict -norestrictions

That's part of my commandline, I made my GTA IV work properly with that. If this doesn't work for you, then go back to your original commandline (this is why the backup copy is important). After that, try updating to v1.0.7. and using my commandline.
I would also recommend updating even if there is no commandline.txt file.

Best of luck! :)


GTA4のあるフォルダにcommandline.txtを作成し(既にある場合はバックアップを取って)、

-noprecache
-nomemrestrict
-norestrictions

を入力。GTA4を起動して、設定を弄れば動くみたいです。やったね。

[WP]no.003 無限桁の足し算

HSPで。
製作時間20分

桁の制限の無い、符号なし整数の足し算をします。
情報の保持は文字列。手抜き。hspだからね

integerで計算できるところを部分的に計算し、桁上がりを判定、保持。

空文字列からマイナス文字取り出せ、という状況が発生しますが、空文字が返ってくるだけなので無視。
c等に移植する場合は、このあたりを考えるべき。
もっとも、javaやC#ならbiginteger等を使うべきです。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : HSP3 アルゴリズムとデータ構造

[WP]no.002 素朴な迷路生成

第2回「迷路生成」
製作時間1h あえてjava使用
壁のデータ構造を考えるのを忘れてそこそこ時間がかかってしまった様子
再帰使っちゃったのでメモリ使用量はお察し、やや実行速度重視?

こんな感じ

□□□□□□□■□□□
□■■■■■■■□■□
□□□■□□□□□■□
□■□■□■■■■■□
□■□□□■□□□■□
□■■■■■□■□■□
□■□□□■□■□■□
□■□■□■■■□■□
□□□■□■□□□■□
■■■■□■□■□■□
□□□□□□□■□■□

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : Java アルゴリズムとデータ構造

[WP]no.001 超簡易タイマー

とある方が1日1プログラミングとかいうのをやっていたので、見習おう。
流石に僕は1日1個はできそうにないので、Weeklyでやってみようかと。

誰も見なくてもwebに載せる価値はあると思ってます…ホームセンターに石とか売ってますし

ルール
・1週間に1プログラム以上投稿
 -どうしても達成できない場合は前週間に2プログラム以上投稿
・言語不問(C、C#、Java、HSP、Javascriptなど)
・環境不問(Windows、Linux、HTML5)
・なるべく短時間で製作、完成度は問わない

というわけで第1回「タイマー」
製作時間5分 記事書いてる方が長い
連打するとカウント速度上がる謎仕様(原因はサブルーチン割り込みだと信じる)
製作時間を計るために作成したかも

screen 0,320,240
btnlabel="start","pause"
pause=0
timer=0

button gosub btnlabel.pause,*btn
repeat
color ,,
boxf
hsvcolor ,,255
pos 5,40
mes strf("%02d:%02d:%02d",timer/3600,(timer\3600)/60,timer\60)
redraw 1 : redraw 0
timer++
if (pause==0) {
repeat : wait 5 : if (pause) : break
loop
}
await 1000
loop
stop
*btn
pause=1^pause
objprm 0,btnlabel.pause
return

捻ったプログラムを書くのもアリなんじゃないかな!!

テーマ : プログラミング
ジャンル : コンピュータ

tag : HSP3

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1139位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
191位
アクセスランキングを見る>>