■ このスレッドは過去ログ倉庫に格納されています
Linux使ってみて普及するわけないと思った時89
- 1 :login:Penguin:2016/10/30(日) 09:56:12.66 ID:mEpRJ6Ty.net
- 前スレ
Linux使ってみて普及するわけないと思った時88
http://hayabusa6.2ch.net/test/read.cgi/linux/1471413499/
今回もマック信者が憤死するの?
- 251 :login:Penguin:2016/11/10(木) 10:25:12.16 ID:Dny249wh.net
- linuxのアプリは、
ダイナミックリンク設定(そういうオプションがあるもの)でビルドしても
「ビルド時のライブラリ」でないと動作しないんだよ
だから互換性があろうがなかろうが更新してしまうと一切動かない
linuxはスタティックとダイナミックの区別ができてない
- 252 :login:Penguin:2016/11/10(木) 10:34:57.55 ID:Dny249wh.net
- GTK+とかGDとかQTとか使うもの、fontconfigとかもそうだが
とにかくすべて、ダイナミックリンク設定であるにもかかわらず
ライブラリを新しいもの、あるいは古いものに更新すると完全に動作しないか
文字が全部「□」になったりする
余計なことをしたかと思ってそれまで動いていたビルド設定(つまりOSがリリースされたときにある設定)
のファイルをそのまま使ってもムダ
「ライブラリに新機能追加や機能廃止があったからオプションにも変更ガー」
ねえよそんなもん
そんなモンとっくに調べてる
次のOSリリースでバージョンが新しくなっているにもかかわらず正常動作するから
設定ファイルやビルド設定に違いがあるのか見てみたら前バージョンとの差異は一切ない
つまり、「ファイルをそのまま使ってビルド試してみた」ときに動かないといけないはずなんだよな
ところが正常に動かなかった
スタティック設定でビルドし直すと正常
つまりダイナミックリンクが機能してないのだ
こんなだからlinuxは流行らない
- 253 :login:Penguin:2016/11/10(木) 10:47:17.66 ID:Dny249wh.net
- Windowsの場合(例えばVC++ライブラリを使うもの)
VC++2010ランタイムv1.0を前提にビルドする
VC++2010ランタイムv1.1が出た
そのままランタイムファイルを上書きする
互換性が保証されている限りそのまま動作する
Linuxの場合 (例えばGTK2)
GTK2ライブラリv1.0を使ってビルドする (ダイナミックリンク有効)
GTK2ライブラリv1.1が出た
そのままライブラリファイルを1.1に上書きする
「GTK2library Wrong versionなんちゃら」とか出て動かない
「自分は何のライブラリバージョンでビルドされたか」を保持してるんだよな
linuxのアプリはすべて
これがおかしいっつの
ビルド時のバージョンでしか動かないってのはダイナミックリンクじゃねえじゃん
linuxのダイナミックリンクってのは
ファイルの置き場が違うだけのことかよ
たとえば自分の置かれてるフォルダと同じ所にライブラリファイルが置かれているのがスタティックで
/usr/binなどアプリ固有フォルダでないところにライブラリが置かれているのがダイナミックだと
ビルド時のバージョンでしか動かないならどこを見ようとも
それはダイナミックリンクではない
- 254 :login:Penguin:2016/11/10(木) 11:35:21.68 ID:yDRtJe9R.net
- 頭悪すぎて草
- 255 :login:Penguin:2016/11/10(木) 11:53:20.98 ID:yDRtJe9R.net
- http://hayabusa6.2ch.net/test/read.cgi/linux/1466587869/216-
ライブラリを新しいもの、あるいは古いものに更新すると完全に動作しないか
文字が全部「□」になったりするのに10年前のfirefoxが今でも普通に動くのはなぜですか大先生!?!?
- 256 :login:Penguin:2016/11/10(木) 14:40:21.80 ID:lwOzdpXH.net
- パッケージの依存情報にたとえばgtk1.0が必要と書いてある
それをgtk1.0のライブラリを1.1に上書きしてしまえばそりゃ動かなくなるがなw
普通は1.0と1.1のライブラリーは共存させるだろ
1.1が1.0と共存できないという場合(conflict)は1.1のパッケージを
インストールしようとすると1.0に依存するパッケージを削除しようとする
そこで通常ユーザーは1.1をインストールすることは問題であることに気づく
自分で1.1をmakeして1.0に上書きしてしまったときはアウトだけどな
- 257 :login:Penguin:2016/11/10(木) 14:47:49.00 ID:lwOzdpXH.net
- 普通Linuxのライブラリーはファイルの添字にバージョン番号を付けて
異なったバージョンでも共存できるようにしている。
- 258 :login:Penguin:2016/11/10(木) 15:54:18.74 ID:Dny249wh.net
- ハナから1.0でしか動かないとあるなら話は分かるが
「それは元々ダイナミックリンクにふさわしくない」(1.0だけなのだから)
ので、ダイナミックリンクで動作するようなビルドオプションはないはずだ
ダイナミックリンクってのは、バージョンが変わったとしても
互換性がある限りは動くようにしたい、というものだろう
自分で持つのも何だから、共有ライブラリとしてあるものを使おうと
共有ということは「ユーザーは新しいものをインストールしないでずっと同じもの固定にしてくれる」
とは限らんわけだろ
それがLinuxではまったく働いてない
- 259 :login:Penguin:2016/11/10(木) 15:56:30.12 ID:lwOzdpXH.net
- https://ja.wikipedia.org/wiki/DLL%E5%9C%B0%E7%8D%84
- 260 :login:Penguin:2016/11/10(木) 15:57:18.26 ID:Dny249wh.net
-
「ビルドしなおしガー」
それは動くんだけど
ダイナミックリンクじゃねえだろ
Windowsでいう、VBや.netで
バージョン変わったらビルドしなおしなんてクソアプリはない
1.1から2.0はともかく
総レス数 1000
311 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★