問題タブ [static-libraries]

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.

0 投票する
3 に答える
3252 参照

iphone - 静的ライブラリに保存されている画像を読み込む方法

私のiPhoneアプリでは、ObjectiveCファイルと画像を含む静的ライブラリにリンクしています。静的ライブラリから画像をロードすることは可能ですか?私が試してみました

ただし、明らかにイメージはメインバンドルになく、静的ライブラリにあり、NSBundleクラスはメインバンドルと既知のパスを持つバンドルへのアクセスのみを提供しているようです。iPhoneの静的ライブラリから画像をロードする方法はありますか?

0 投票する
5 に答える
26278 参照

visual-studio - スタティック ライブラリのコンパイルに使用された Visual Studio のバージョンを特定する方法はありますか?

スタティック ライブラリ (.lib) ファイルのコレクションがあり、そのうちの 1 つは別のバージョンの Visual Studio でビルドされている可能性があります。これにより、それらすべてに対してリンクするプロジェクトのコード生成が失敗します。スタティック ライブラリのコンパイルに使用された Visual Studio のバージョンを特定する方法はありますか?

0 投票する
2 に答える
1504 参照

c++ - 別のライブラリ内に静的ライブラリを含める(リンクする)際の問題

私がやりたいことを簡単に説明しようと思います。

依存関係として別のライブラリを持つ静的ライブラリを使用するプロジェクト。MyLib2でリンクしているMyLib1でリンクしているMyProjectというプロジェクトを作成します。コンパイル順序は次のとおりです。

  • MyLib2
  • MyLib1(MyLib2へのリンク)
  • MyProject(MyLib1へのリンク)

Visual Studio 2008を使用していますが、インクルードの定義に問題があります。リンクするときは、プロパティ「Additional IncludeDirectory」(プロジェクトプロパティC / C ++ノード)を使用します。これはMyProjectとMyLib1の間で機能しているようですが、MyLib1とMyLib2の間では機能していません。例:MyLib2にfoo.cppというファイルがあります。#include "foo.cpp"を使用すると、Visual Studioはfoo.cppが不明(ファイルまたはフォルダーがない)であることを通知します。

私が与えた間違ったパスではないことを確認するために、次のような多くの試みを行いました:コマンドライン(ライブラリのコンパイルに使用)に表示されるパスをコピーしてwinexplorerに貼り付けます:2番目のライブラリのソースコードがよくわかります。私は何度もプロジェクトを作り直しましたが、毎回異なる名前を使用し(これに注意を払う必要があります)、すべてが明確に定義されているようです(ただし「含む」ではありません)。

私が実際にそれを機能させる唯一の方法は、#include "c:\\ foo.cpp"をincludeとして使用することです...移植性に非常に優れています!

これが、自分でテストして何が問題なのかを教えてくれるソリューションのZipです:MyProject.rar

私を助けるために時間を割いてくれてありがとう!Lucyberad

0 投票する
6 に答える
5827 参照

macos - バージョンクロスコンパイルされたプログラムの静的ライブラリ

Macで実行しようとしているunixコマンドラインアプリ(大きな厄介なmakefileを使用)があります。もちろん、適切なライブラリをすべて使用して、10.6システムでコンパイルしています。展開環境は10.5システムであり、追加のライブラリはありません。

-dynamicを使用せずにコンパイルしましたが、静的ライブラリが正しく含まれているようです。10.6システムで実行すると、動作します。ただし、10.5システムで実行すると、次のようになります。

dyld:不明な必要なロードコマンド0x80000022

10.5 xcodeを使用して10.6システム用にコンパイルしたときにも同じエラーが発生したため、バージョンの不一致タイプの問題のように見えます。ただし、gcc-4.0を使用し、

$ CFLAGS = -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min = 10.5

したがって、10.5に設定する必要があります...何かアイデアはありますか?

ありがとう

古代の質問の編集:

別のコンピューターでもまったく同じ問題が発生します。今回は10.5.8で、完全に更新されていますが、同じ実行可能ファイルは10.6でも機能します。

私がこれを尋ねてから数ヶ月の間に誰かがこれに運がありましたか?

0 投票する
2 に答える
2074 参照

iphone - シンボルをエクスポートしない静的ライブラリ オブジェクト ファイルを強制的に含める (GCC/iPhone)

iPhone アプリケーションで使用する静的ライブラリを作成しています。シンボルをエクスポートしない多数のソース ファイルが含まれています。それらが行うのは、クラスの静的インスタンスをインスタンス化し、そのコンストラクターでコードを実行して、別の場所にある中央マネージャー クラスにさまざまなものを登録することだけです。コードが標準の iPhone アプリケーションの一部としてビルドされている場合、これはすべて正常に機能しますが、静的ライブラリに分離されている場合、これらのファイルは最終的なアプリケーション バイナリにはなりません。実行されないため、問題が発生します。静的ライブラリのビルドと最終的なアプリケーションのビルドの両方で、デッド ストリッピングなどを行うすべてのビルド オプションをオフにしました。

少し前に Metrowerks コンパイラでこの問題に遭遇しましたが、その場合、コードが中間ライブラリなしで単一のアプリケーションに組み込まれた場合でも発生していました。解決策は非常に単純でし__declspec(force_export)た。プライベート クラス インスタンスで使用するだけで、すべて問題ありません。

GCC/iPhone に相当するものはありますか? GCC 4.2 で Xcode 3.1.4 を使用し、iPhone OS 3.1 をターゲットにしています。または、明示的に参照されているかどうかに関係なく、静的ライブラリ内のすべてのオブジェクト ファイルにリンクするようにアプリケーションに指示する方法はありますか? arオブジェクト ファイルの完全なセットがスタティック ライブラリに作成されていることを使用して確認しました。

前もって感謝します。

0 投票する
1 に答える
1309 参照

c++ - 別の静的libとqmakeをリンクする静的lib?奇妙なリンクエラー

2つのqt.proファイルがあり、どちらもlibTEMPLATEとstaticlibCONFIGを使用しています。最初のライブラリ(「コア」と呼びます)は、2番目のライブラリ(「foo」と呼びます)の依存関係です。実際、コアのクラスを拡張するfooのクラスがあり、このクラスをBarと呼びます。

別のプロジェクト(libではない)でクラス(fooで定義および実装されているが、コアからクラス(Bar)を拡張している)をインスタンス化すると、次のリンクエラーが発生します。

基本的に、リンカはfoo libで派生したコアlibでクラスを見つけることができませんが、両方のlibを使用している3番目のプロジェクトでクラスをインスタンス化した場合に限ります。この動作は予想されますか?

よろしく、ダンO

更新:派生クラスを使用する前に、3番目のプロジェクトでBarsコンストラクターを直接呼び出すことで修正しました...なぜこれを行う必要があるのか​​誰かが知っていますか?

0 投票する
2 に答える
1608 参照

haskell - Cygwin のライブラリ「rt」および「dl」

おそらくこれはばかげていますが、次の不足しているライブラリを修正するために Cygwin にインストールする必要があるパッケージを見つけることができません。

ファイルxxxが見つからないというフィードバックを受け取ったときに、どのパッケージをインストールするかを一般的にどのように見つけるのでしょうか(gentooではこれは非常に簡単だったことを覚えています)...

0 投票する
3 に答える
1063 参照

objective-c - 非静的変数をインターフェイスからObjectiveCの実装に移動する方法は?

私はココアタッチ静的ライブラリを書き込もうとしています。簡単にするために、インターフェイスファイル内でプライベート変数を使用しないことをお勧めします。現在のコードは次のようになっています。

インターフェイスファイル(myView.h):

実装ファイル(myView.h)

このNSTimerポインターは単なるプライベート変数なので、これを試しました:( 機能していません)

インターフェイスファイル(myView.h):

実装ファイル(myView.h)

動作しているように見えますが、タイマーが静的変数になっていることがわかりました。

私は間違ったことをしていますか、それとも解決策はありませんか?

0 投票する
1 に答える
643 参照

visual-studio - VisualStudio2008の初心者Cランタイムライブラリに関する質問

プロジェクトのプロパティメニューのlinker->inputセクションでlibc.libを無視するようにVS2008プロジェクトに指示することで、コンパイルして実行するアプリケーションを取得しました。これを行う前に、VSは古い「致命的なエラーLNK1104:ファイル'LIBC.lib'を開けません」というメッセージを表示しました。

私がcrtを無視している場合、このアプリがどのようにコンパイルされるかはわかりませんが、それは明らかに私の無知です。

C / C ++プロジェクトの設定を確認したところ、ランタイムライブラリの設定でマルチスレッドデバッグdll(/ MDdフラグ)が読み取られたため、どこかでVC80*.dllにリンクしている必要があります。

でもどうすればいいのかわかりません。Visual Studioのcrt設定、静的またはデバッグ、マルチスレッドかどうかについて、私はいつも混乱してきました。このサイトとグーグルを読んだことで、私の理解は大まかに改善されました。コードの膨張が少ないdllを使用すると、プログラムが必要なときにリンクが張られ、dllを上書きすることでcrtの更新を適用できます。言い換えれば、dllを使用する通常の理由。

しかし、マルチvsシングルスレッドバージョンとは何ですか?静的バージョンとリンクした場合、winスレッドまたはpthreadを使用できませんが、それはどういう意味ですか?

私が聞いたことがあるが、完全には従わなかったもう1つのことは、あるdllでオブジェクトを割り当て、別のdllからオブジェクトの割り当てを解除すること、またはそのようなもので、相互割り当てに関係する問題があります。私はそれをうまく説明していません(私はそれを理解していないので)が、あなたが私の主張を理解し、そこで何が起こっているのかを説明できることを願っています。私のプログラムでは、dllに存在するクラスで新しいObjectX()を呼び出すことができないということですか?それを意味することはできませんか?

みんな、ありがとう!

0 投票する
1 に答える
5271 参照

c++ - QT Creator でのビルド時に再リンクを強制する

いくつかのライブラリとメイン アプリケーションをラップする subdirs プロジェクトがあります。ライブラリの 1 つで何かを変更すると、メイン アプリケーションがそれらと再リンクしません。QtCreator を使用しているときに、アプリケーションを静的にリンクされたライブラリと自動的に再リンクするためのトリックを持っている人はいますか?