2

premake5 を使用して、複数のプラットフォームで複雑なアプリケーションを構築しています。私のアプリケーションは、静的および共有/動的外部ライブラリの両方にリンクしています。この場合、premake で生成された「gmake」make ファイルを壊す、ビルド チェーンの重要な依存関係があるようです。

適例:

premake 'link' ステートメントで共有ライブラリと静的ライブラリを混在させると、GCC は混乱し、共有ライブラリ参照が実際には静的ライブラリであると想定するようです。それらが見つからない場合、リンク段階は失敗します。これは通常、共有ライブラリの前に「-Bdynamic」を付けることで処理されます。残念ながら、premake5 に外部リンク ライブラリが静的か動的かを伝える方法がないため、make ファイルを手動で修正する必要があり、ビルド ユーティリティの目的が無効になります。

これは一種のショーストッパーです。"-Bdynamic" を linkoptions にそのまま入力することはできないと思います。これは、共有ライブラリのリストが後に続く必要があるためです。

4

1 に答える 1

2

gmake アクションのバグ (または少なくとも機能の欠落) のようです。これらの場合、Github の Premake ページ ( https://github.com/premake/premake-core ) に移動して、新しい問題を作成するのが最善の方法です。 .

そして、再現可能な小さなプロジェクト (静的 lib プロジェクト、動的プロジェクト、および両方を使用するアプリケーション、それぞれ 1 つの cpp またはいくつかの単純なもの + premake スクリプトのみ) を提供し、それを issue に添付する時間があれば、それを問題に添付します。また、本当に感謝しています(そして、この問題を扱うのははるかに簡単です^^)

于 2015-07-10T07:24:33.917 に答える