問題タブ [portability]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Winsock 2 の移植性
私は C++ でいくつかのソケット関連のものを開発しようとしており、最初からソフトウェアを Windows と Linux の間でできるだけ移植できるようにしたいと考えています (後で移植できるようにするのは難しいです)。
私はさまざまなライブラリを見てきました.alhem.netのC ++用のライブラリがあり、もちろんboost::asioもあります。boost::asio は非常に有望に見えますが、この小さなアプリケーションにとっては非常に大きな依存関係になるでしょう。
自分で何かを書く価値はありますか、それともライブラリを使用するだけですか? 自分でやる場合、主な落とし穴は何ですか?
python - Pythonで現在のユーザー名を取得する移植可能な方法はありますか?
Python で現在のユーザーのユーザー名を取得する移植可能な方法はありますか (つまり、少なくとも Linux と Windows の両方で動作する方法)。それは次のように機能しos.getuid
ます:
私はグーグルで検索しましたが、決定的な答えが見つからないことに驚きました(おそらく、グーグルの検索が下手だったのかもしれませんが). pwdモジュールは、たとえば Linux ではこれを実現するための比較的簡単な方法を提供しますが、Windows には存在しません。一部の検索結果では、Windows でユーザー名を取得するのが特定の状況 (Windows サービスとして実行中など) では複雑になる可能性があることを示唆していましたが、私はそれを確認していません。
c++ - LSB AppChecker:未使用のライブラリに対するGCCリンク
LSB AppCheckerを使用して共有オブジェクト(.so)の移植性をチェックしています。
報告されている問題の1つは、使用されていないがとにかくリンクされている外部ライブラリ(libm.so.6)が1つあることです。
GCCがこの不要なライブラリにリンクするのを防ぐにはどうすればよいですか?
編集:
私の共有オブジェクトに対するlddコマンドの出力は次のとおりです。
cross-platform - どのゲーム プラットフォームに移植しますか?
私は非常に移植性の高いインディー ゲーム エンジンとそれに付随する「デモ」ゲームを開発しています。ただし、将来的には、いくつかの異なるプラットフォームに展開するためのより包括的なゲームを作成したいと考えています. 将来のゲームの詳細はそれほど重要ではありません。私は「何」よりも「どのように」に興味があります.ジャンルやコンテンツは私には関係ありません.
では、どのターゲット プラットフォームをお勧めしますか? また、そのプラットフォーム向けに開発に成功した安価な機能 (非常に大きな衝撃を与えた機能) は何ですか? 私の予算では 10,000 米ドルの値札で SDK を購入することはできないため、費用対効果を念頭に置いてください。
編集:特定のプラットフォーム向けに開発に成功した安価な機能に本当に興味があります. 例: 「iPod 用のこの素晴らしい 2 本指タッチ入力制御方式のレトロなあれこれのゲームをすぐに作成しましたが、それは揺るぎませんでした-- 私は本当にそのプラットフォームをお勧めできます/アプローチ!"
java - J2ME で欠落している最も一般的なクラスに対処する方法
J2SE、J2ME、Android などのさまざまな Java プラットフォームで実行されるアプリケーションをコーディングしようとしています。プラットフォームごとにほとんどの UI を書き直す必要があることは既にわかっていますが、コア ロジックを再利用したいと考えています。
このコアの移植性を維持するには、私が知っている 3 つの欠点があります。
- 古いJava 1.4 構文を維持し、Java 5.0 の優れた言語機能を使用しない
- これらのプラットフォームで動作することがわかっている外部ライブラリのみを使用する (つまり、JNI を使用せず、この規則に違反する他のライブラリに依存しない)
- これらすべてのプラットフォームに存在するクラスのみを使用する
(1)を克服する方法を知っています:5.0スタイルのコードを自動的に1.4に変換します(レトロウィーバー-まだ試していませんが、問題ないようです)。
(2)は受け入れるしかない問題だと思います。
今、私は(3)、特に私が最も見逃しているコレクションクラスの最善の回避策を知りたいです。私はそれらを考えることができます:
- 私が知っているほとんどのプログラマーは、、、などを使用せず、
Set
プレーンな配列にフォールバックします。これはそもそもコードを醜くすると思います。しかし、私はまた、orの間の正しい選択がパフォーマンスにとって非常に重要であり、常にand 配列を使用することは正しくないことも知っています。Map
List
Vector
TreeSet/Hashset
LinkedList/ArrayList
Vector
- そのクラスの独自の実装をコーディングできました。これは車輪の再発明のようであり、他の人が行ったほどうまくできなかったと思います.
- Java はオープン ソースであるため、J2SE Collections フレームワークのソースコードを入手して、J2ME 用にビルドするときにアプリケーションに組み込むことができました。しかし、これが良いアイデアかどうかはわかりません。おそらく、これを行わない正当な理由があります。
- おそらく、コレクション フレームワークの最も重要な機能を再構築するライブラリが既に存在する可能性がありますが、使用頻度の低い機能を実装しないことにより、ロー エンド システム向けに最適化されています。何でも知ってますか?
あなたの答えと意見をありがとう!
編集:私はついに(複雑だが素晴らしい)解決策を見つけました。私は自分の答えを提供してそれを受け入れることで、解決策が一番上に見えるようになると思いました。しかし逆に言えば、私の答えはまだどん底にある。
frameworks - USBスティックで実行可能な、インストールなしのクロスプラットフォームソフトウェアフレームワーク(GUI付き)はありますか?
次の特性を持つ優れたソフトウェア開発フレームワークなどを知っている人はいますか?
- クロスプラットフォーム:XP、Vista、OSX、およびLinuxの一般的なバージョン(UbuntuやKubuntuなど)で実行可能である必要があります。
- インストールなし:ホストマシンに何もコピーせずに、USBスティックからソフトウェアを実行できます。
- 優れたGUIサポートを持っている(これが、私が知る限り、この質問が適切な答えを与えない理由です)。
- LGPLやBSDなどのパーミッシブライセンス。
よりソフトな要件の中には、ソケットやファイルIOなどの最も一般的なバックエンド機能の一連の抽象化があり(通常、プラットフォーム固有の適応が必要です)、PythonやC++などの優れた言語をサポートします。通常、新しいものを学ぶのは楽しいです(つまり、perlではありません)。
考えられる候補はQt4.5以上(ただし、IFAIK QtソフトウェアはインストールなしではVistaで実行されません(?))、いくつかのwxWidgets、またはおそらくgtkmmのwxPythonソリューションです。私が見つけた例は、いずれかの要件で失敗しました。これは、そのような例が存在しないことを意味するのではなく、私が何も見つけていないことを意味します。だから私はそこに誰かがこれに対する既存の解決策を知っているかどうか疑問に思っていましたか?
いくつかの説明;
- 「フレームワーク」とは、ウィジェットパッケージを備えたQt、gtkmm、pythonなどを意味します。
- これは、インストールせずにスティックから複数のプラットフォームで完成品を実行できることであり、ポータブルな開発環境を持つことではありません。
- ブートスティックではありません。
- 必要に応じて、さまざまなターゲット専用のソフトウェアをビルドする必要があります。
私が見ているユースケースは、信頼できるソフトウェア(プロジェクト計画、情報の管理、分析ツールなど)があり、次のようなものです。
- インターネット接続が利用可能であることに依存していません。
- 何もインストールしても問題がない別のホストマシンで実行されます。
- ユーザーが物理メディア(USBスティックなど)を介して移動します。
- Windows、Vista、Ubuntu、OSXなどのさまざまなオペレーティングシステムで実行されます。
- これらの異なるホスト上の同じデータで機能します(データはホストまたはスティックに保存できます)。
- バンドルされたフレームワークの大きさは実際には制限されていません(数ギガバイトでない限り、これは実際には現実的ではありません)。
ソフトウェアが同じように動作し、異なるターゲットで実行されたときに同じデータで動作できる限り、スティックに並列インストールすることもできます。
ユースケースの別の見方は、Vista、XP、OSX、Ubuntu、Kubuntuがそれぞれ目の前にある5台の新しくインストールされたマシンがあるということです。マシンに新しいものをインストールすることなく、これら5台のマシンのそれぞれで1つのUSBスティック(上記のGUI要件などを満たす)から同じソフトウェアを実行できるようにしたいと思います(ただし、必要に応じて異なるマシンから)スティック上のバンドル)。
これは可能ですか?
編集:いくつかのウィジェットとsqliteデータベースを使用するQtアプリで少し実験しました。ubuntudistとosxで動作させるのは簡単でした。Windows XPおよびVistaの場合、QtCored4.dll、QtGuid4.dll、QtSqld4.dll、およびmingwm10.dllを配布ディレクトリ(これはデバッグコード)にコピーする必要があり、qsqlited4.dllを配布内の「sqldrivers」という名前のフォルダーにコピーしました。ディレクトリ。
windows - WD 160gb USB ハードドライブにインストールされているポータブル XP に Oracle をインストールできますか?
私を助けてください。
宛名印刷ソフトをインストールしたい。内部ハード ドライブを使用する代わりに、USB ハード ドライブを使用して、システムをポータブルにする柔軟性と利便性を提供したいと考えました。
USB ハード ドライブに Portable XP を正常にインストールできるかどうかを知りたいです。はいの場合、Portable XP が動作するハード ドライブに Oracle をインストールできますか? ソフトウェアはOracleで作られていますか?
どうすればインストールできますか?
perl - ポータブルPerlはありますか?
ポータブルPythonのラインに沿ってポータブルPerlはありますか?サムドライブから(学習中に)使用できるものはありますか?
ああ、私はウィンドウXPについて話している。
.net - App.configdllmapエントリの移植性
dllmap構成ファイルエントリは、Windows DLLの要求をLinux(.so)ライブラリにマップするためにMonoで使用されます。しかし、Microsoftの.NET Frameworkがそのようなエントリを含む構成ファイルを解析しようとすると、「dllmap」を理解していないためにエラーが発生するようです。私のディストリビューションの他のすべては、LinuxとWindowsXPの両方で変更せずに配布できると思います。これに関連するすべての移植性の中で、この構成エントリは本当に欠点であり、移植性のない部分の1つですか?このファイルをプラットフォーム間で共有する方法もありませんか?