探検


Linuxプログラミング 2

2010/02/13(土) 14:53:15ID:lCBgsQHj
Linux(特有)のプログラミングに関する話題です

前スレ
http://pc11.2ch.net/test/read.cgi/linux/1118024349/
2010/02/13(土) 16:03:40ID:mGBOKUh2
Linux(特有)のプログラミングってったら
やっぱCUIの話だよね?
2010/02/13(土) 17:03:45ID:TJKctgYE
いや、LinuxでのプログラミングといえばOpenOffice.orgのマクロだろ
4login:Penguin
垢版 |
2010/02/13(土) 19:47:35ID:Tn00P1U3
eclipseの使い方を教えてください。
2010/02/14(日) 09:39:12ID:5tEzJbao
NetBeans使ったらいいよ。
2010/02/14(日) 18:43:09ID:cKLhOUfG
geditを使ったらいいよ。
2010/02/14(日) 23:41:39ID:FNCcI3vj
重要な.hファイルをレビューしてくれる便利なスレ
8login:Penguin
垢版 |
2010/02/17(水) 10:41:45ID:LG688LS7
ptraceの代わりになるやつって、いつになったら出るんだ?
2010/02/17(水) 20:21:33ID:honyW9F4
systemtapで頑張る、じゃ駄目か?
10login:Penguin
垢版 |
2010/02/17(水) 22:32:59ID:IOTgDS50
LinuxだのWindowsだのって面倒だからさ、もうWebブラウザのCanvasにJavaScriptで出力すれば良いじゃん
一通り描画機能がそろっているから、何でもありだよ

テキストファイルで書けるし、携帯でもそのまま動く
2010/02/17(水) 23:58:34ID:LXLXKQ+J
>>10
フラッシュで良くね?
2010/02/20(土) 09:09:07ID:nRp88Zlj
Linux でフラッシュの開発できないじゃん。HTML5で出来るほうがうれしいわ。

ところで、
/usr/bin/ld: Dwarf Error: Offset greater than or equal to .debug_str size
ていうエラーがでて悩まされているのだが、これって一般的にどんな理由ででるの?
ぐぐっても今一よく分らん。ld か、gcc のバグみたいなんだが、どうなの。
gcc のバージョン上げるほうが、トラブル多いのでやりたくないのだが。
2010/02/20(土) 10:31:53ID:HTlonogm
コンパイルオプションかmakefileの中身をみないと判らないかも…
2010/02/20(土) 14:50:17ID:xHGHiiS6
>>12
一回make cleanした方が良くね?
1512
垢版 |
2010/02/20(土) 16:11:07ID:nRp88Zlj
直りました。link option 見てたら、リンクライブラリが足りなかったので、追加したら直った。
そういえば、Dwarf Error の下に undefined symbol error が出てたわ。
オープンソースだからと、そういうミスじゃなくて自分の環境を疑ってた。
2010/02/20(土) 22:14:51ID:sB4t44qX
/dev/ttyS0につながっているケーブルを
抜いて、再度接続するとLinuxってHUPシグナル
勝手に送ってくる?

2010/02/23(火) 09:52:39ID:vIQB7Fop
>>12
FlexSDK使えばLinuxでもFlash作れんぞ
しかもタダで
18login:Penguin
垢版 |
2010/02/23(火) 15:08:06ID:0nkv90p7
LinuxでのGCCの使い方がいまいち分からない。。。
だからCのソースファイル→コンパイル&リンク出来ない
しかたなくWindowsでBorlandのC++ Compiler
使ってプログラム作成してます。
BCCの方がリンク作業してくれるし、
何かと便利な気がしなくもない。
2010/02/23(火) 15:23:26ID:ItPSxaNh
>>18
eclipseとかanjutaとか使ってみたら。
2010/02/23(火) 23:56:46ID:SCYhXebQ
>>18
gccは普通にコンパイル&リンクしてくれるぞ?
問題あるならエラー晒せよ
くだ質で
2010/02/27(土) 18:55:34ID:BOrH2yFU
NetBeansつかってみなよ
2010/02/27(土) 19:02:13ID:ZHNRN3Op
いやです。ほかはともかく、そればっかりは・・・困るというか
23login:Penguin
垢版 |
2010/03/04(木) 20:55:27ID:N41ZrQSF
プログラミングの勉強を始めたいのですが何言語を勉強すればいいですか
目的はTVチューナーのドライバを書くことですが、アナログチューナーなのですぐに使えなくなるのでやっぱやめます
じゃあローグライクゲームを作ることにしますが、ローグライクはcやc++で作られてるそうですね
じゃあc++にするべきですね?visualstudioみたいなのはLinuxには無いのですか
あとまったくの初心者におすすめのサイトを教えてください
c++を選ぶのであってるですか?も教えてください
2010/03/04(木) 22:29:21ID:wUSxBRK0
>>23
linuxでprogrammingするならCをまず覚えたほうがいい
visualstudioっていうのはIDEとかだと思われるけど
だいたいvimやemacsのeditorで作業するのが一般的なんじゃないだろうか
だ.け.ど、あると思うよいっぱい
http://penguin.tantin.jp/mori/category/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%83%BBIDE.html
こういう所から好きなのを選ぶといい
選ぶというのは難しいことだけど
お勧めは分からない
僕はvimを使ってるから
2010/03/04(木) 23:59:25ID:uuQpMZ/e
俺も使い方覚えるのめんどいんでIDE使わずにEmacsだが
IDEが標準になるぐらいでないとよいGUIアプリは出てこないだろうな
2010/03/05(金) 03:27:23ID:WOCB8/hN
あとgitとか覚えとくと便利かも
2010/03/05(金) 07:27:34ID:pKQhUv3w
inode直接操作するプログラム
書きたいんだけど

ユーザ空間だけじゃ無理かな?
2010/03/05(金) 15:45:32ID:U1eHb1jX
Linuxの共有メモリってshmatで帰ってくるアドレスが
作成した時と参照した時に違って帰ってくる。
内容はちゃんと合ってるんだけど(CentOS5.4 x84)

Solarisではアドレスも一致しているからポインタなん
かも共有しても安全なんだけどね
2928
垢版 |
2010/03/05(金) 16:41:32ID:U1eHb1jX
自己解決
SHM_REMAPってのがあった。

ちゃんと同じアドレスが帰って来ました。
2010/03/05(金) 23:46:53ID:WOCB8/hN
>>27
FUSEではことたりない?
2010/03/07(日) 10:32:58ID:C3xf+tVy
>>23
とりあえず、JavaScriptでFireFox用ゲームでも作っとけ
2010/04/15(木) 02:44:55ID:7gUXZmzK
Ubuntu Weekly Recipe:第117回 UbuntuとEmacsでプログラミングをはじめよう(中編)|gihyo.jp … 技術評論社
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0117
2010/04/15(木) 04:57:06ID:pwt3QHgZ
そのページってコピペ反転できないんだが嫌がらせ?
2010/04/16(金) 00:08:29ID:VSCJvoX/
>>33
普通に出来るけど、ブラウザ何使ってんの?w
35login:Penguin
垢版 |
2010/04/24(土) 20:27:13ID:WLgVAzv3
C++でzipを解凍したいんだけど、zlibを使わないと解凍できないの?
2010/04/24(土) 21:00:20ID:/2NBYvX3
ご自分で解析なさってライブラリを自作して下さい。
2010/05/11(火) 00:29:04ID:+zbJLIvU
epollとpipeの組み合わせた
サンプルってどこかに無いでしょうか?
2010/05/11(火) 01:52:12ID:GKkWep32
>>37
3日待て。
2010/05/19(水) 21:25:20ID:TftsbxQJ
タイムアウト付きのflockってどうやって作ればいいんだろうか
4039
垢版 |
2010/05/19(水) 21:32:19ID:TftsbxQJ
C言語で。
2010/05/20(木) 04:32:53ID:0kcdrzIb
>>39
sigintrrupt(SIGALRM, 1)をしてSIGALRMのハンドラを
設定しておき、alarmをかければEINTRでflockを設定時間後に
抜ける。 
2010/05/20(木) 23:22:35ID:ZvMEsZoN
>>41
なるほど。
スレッド使わない限りそれで大丈夫そうだな。ありがとう。
スレッド使うときはまた別の方法考えるか
2010/05/26(水) 07:36:49ID:di73yeB6
Ubuntu10.4でコンパイルしたプログラムを
CentOS5.3で実行しようとすると以下のようなエラーが出ます。

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found

Ubuntuにインストールされているglibcやglibc/glibcxxの方が新しいから、
というのは分かるのですが、
Ubuntu側で対応(コンパイルオプションを変更するなど)して
CentOSでも実行できるようなバイナリを作成することは可能でしょうか。
2010/05/26(水) 08:05:35ID:+Qk1ziVc
>>43
最終奥義staticとかどうよ
2010/05/26(水) 10:44:27ID:MphoNb0F
staticは剛の拳
2010/05/26(水) 11:31:10ID:ixBtjNHi
RH系だったら古いバージョンのコンパイラ、ライブラリが
compat-* パッケージで提供されてるけど、deb系ってそういう
概念たしか無いよね? 
4743
垢版 |
2010/05/26(水) 13:23:24ID:di73yeB6
書き忘れていました。そのプログラムはshared objectも含んでいます…
(本体からはdlopenで利用しています)

staticリンクを試してみたところ、本体は-staticでコンパイルできました。
ですが、.soの方のコンパイル方法がよく分かりません。

通常は
gcc -shared libhello.c -o libhello.so
で作成すると思うのですが、これにglibcをstaticリンクしようと思い
gcc -shared libhello.c -o libhello.so -Wl,-Bstatic -lc -Wl,-Bdynamic
(参考: ttp://jarp.does.notwork.org/diary/200309a.html#200309081)
としてみたのですが、
ldd libhello.soの結果は
> linux-gate.so.1 => (0x00b23000)
> libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00110000)
> /lib/ld-linux.so.2 (0x00c0b000)
となり、相変わらずlibcがdynamic linkされているようでした。

.soにstaticリンクするにはどうすれば良いでしょうか。
2010/05/26(水) 14:02:47ID:+Qk1ziVc
>>47
glibcのスタティックアーカイブが必要なんじゃないかな、と思う。
*.aが入ったパッケージがあればstaticなバイナリが出来ると思うけど。
fedoraではglibc-staticってパッケージに入ってる。
ubuntuはしらん
2010/05/26(水) 15:23:04ID:QStqBRIk
>>47
むり。

# aptitude install gcc-4.1
して、そっちつかえ。
5043
垢版 |
2010/05/26(水) 15:35:55ID:di73yeB6
>>48
mainで始まるプログラムは-staticをつけてビルドできています
> not a dynamic executable
ので、スタティックアーカイブが不足している、ということは無いと思います…
(Ubuntuではlibc.aは libc6-devパッケージに含まれるようです。)

>>49
無理ですか…

ちなみに、本体のexecutableファイルをgcc4.4.2で-staticをつけてコンパイルし、
.soをgcc4.1でコンパイルしてCentOSで実行した場合、
使用されるglibcのバージョンがそれぞれ異なることになると思いますが、
この状況は問題があるのでしょうか。
(サンプルを作ってみた限りでは問題なく動作しているように見えますが)
レスを投稿する


ニューススポーツなんでも実況