問題タブ [cpack]
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.
icons - cmake-cpackアプリケーションのアイコンとメニューエントリを指定します
CMakeとCPackを使用して、開発中のアプリケーションのパッケージ(.debと.rpmも)を作成してインストールしようとしています。パッケージはうまく作成されますが、dpkg -i mypackage.debを実行した後、KDEメニューにエントリが表示されません。
これが私がしているステップです:
CMakeLists.txtからの抜粋:
ddm.desktopは次のようになります。
そして、ddm.xmlは次のようになります。
今何が起こっているのかというと、アプリケーションを実行するとsudo make install
、アプリケーションはメニューにインストールされますが(ただし、アイコンは表示されません)、アプリケーションを実行するとdpk -i package.deb
、アプリケーションはインストールされますが、kdeメニューエントリは作成されません...
私が間違って何をしているのか分かりますか?
cmake - cpackが必要なライブラリをRPMに追加しないようにするにはどうすればよいですか?
作業中のビルドシステムをcmakeに変換しようとしていますが、(cpackを介して)生成されるRPMで興味深い問題が発生しました。RPMが必要と考えるすべての依存関係が自動的にリストに追加されます。ライブラリ。
一般的に、それは素晴らしいことですが、私の場合、それは壊滅的です。残念ながら、私たちが構築する開発パッケージは、rpmを使用してシステムデータベースとは別のRPMデータベースにインストールする自社製ツールの1つでインストールされることになります。ばかげていますが、変えられません。これが意味するのは、通常のライブラリが依存するすべてのシステムライブラリ(libcやlibpthreadなど)が、開発パッケージで使用されているRPMデータベースにないということです。したがって、開発パッケージの1つのRPMにシステムライブラリが必須としてリストされている場合、rpmはそれらがインストールされていないと見なすため、インストールできません(それらは、通常のデータベースではなく通常のデータベースにリストされているため)パッケージをインストールするときに使用するように指示されていること)。私たちの現在のビルドのものはこれをうまく処理します、これは、RPMの依存関係としてシステムライブラリがリストされていないためですが、cpackはRPMの必要なライブラリのリストに自動的にデータを入力し、そこにシステムライブラリを配置します。私はそれがそうするのを止める方法が必要です。
に設定CPACK_RPM_PACKAGE_REQUIRES
してみまし""
たが、効果がありません。生成されるRPMCpackは、システムライブラリが必須としてリストされたままになります。この時点で私が考えることができるのは、RPM cpackジェネレーターをコピーしてハックし、標準の代わりにそれを使用してやりたいことを実行することですが、それは避けたいと思います。誰かがcpackに必要なライブラリをRPMに追加するのをやめる方法を知っていますか?
windows - インストール時に cpack で環境変数を使用することは可能ですか?
仕事でいくつかのものをcmakeに移植しようとしています.Windowsインストーラー(現在Inno Setupを使用しています)で行っていることは、cmake/cpackに結果がないようです。インストール時に環境変数に基づいてインストールされる開発ライブラリがあります。そのため、インクルード ファイルは のようなものに"%DEV_INCLUDE_DIR%/include"
なり、ライブラリ ファイル自体は のようなものになり"%DEV_LIB_DIR%/lib"
、環境変数はインストーラの実行時にボックスの環境に含まれます。したがって、インストーラーが生成されたボックスに何があったかは関係ありません。DEV_INCLUDE_DIR
DEV_LIB_DIR
ただし、cmake は、コンパイル時にすべてを構成する必要があるようです。ターゲットを使用して cpackinstall
のターゲットを生成し、コマンドを使用して、インストーラーでインストールするものを追加します。環境変数をパスに入れようとすると、うまくいきません。私が試したらpackage
install
その後、パッケージが NSIS インストーラーでインストールされるときに%DEV_INCLUDE_DIR%
フォルダーが作成されますが、これは間違いなく私が望んでいるものではありません。インストール時にその環境変数の値CMAKE_INSTALL_PREFIX
に置き換えたい。%DEV_INCLUDE_DIR%
そして、私はそれを行う方法を見つけることができません。誰かがそれを行う方法を知っていますか、それが可能かどうかさえ知っていますか?
正直なところ、この場合のインストール プレフィックスはわかりません (環境変数に基づいてすべてがインストールされます) が、cmake はインストール プレフィックスが存在するという考えに基づいて構築されているようで、インストール プレフィックスがコマンドDESTINATION
内のすべてが絶対ディレクトリである場合は無視されます(または最悪の場合、空のディレクトリが作成されます)install
が、環境変数を環境変数または絶対ディレクトリとして扱っていません。そして、それを環境変数として扱うようにcmakeに指示すると考えることができるすべての方法(例$ENV{DEV_INCLUDE_DIR}"
)は、インストールされているボックスではなく、ビルドされているボックスで環境変数を使用することを含みます。インストール時に実際に環境変数を使用するように cmake/cpack のインストール/パッケージを取得する方法はありますか?
cmake - cmake/cpack で Inno Setup を使用することは可能ですか?
作業中のプロジェクトの一部を cmake/cpack に移植しています。現在のものは Inno Setup を使用していますが、Inno Setup 用の組み込みの CPack ジェネレーターはないようです。zip ファイルか NSIS のようです。Inno Setup を使用する CPack ジェネレーターはありますか (ある場合、どこで見つけることができますか)? package
そうでない場合、それを実行するためのスクリプトを作成し、cmake でターゲットに対してそれを実行させる以外に、cmake で Inno Setup を使用する別の方法はありますか?
cmake - CPACKおよびNSISでテキストファイルのスタートメニューエントリを追加するにはどうすればよいですか。
release_notes.txt
スタートメニューまたはスタートメニューにエントリが必要release_notes.html
です。メニューでrelease_notesエントリを選択すると、テキストファイルがメモ帳に表示されるか、HTMLがWebブラウザに入力されます。しかし、それを行うためのコマンドの書き方がわかりませんCMakeLists.txt
。
mysql - CMake 2.8.10.2 で MySQL Connector/C 6.0.2 のビルド ファイルを生成できない
Windows 7 x64 で CMake 2.8.10.2 を使用して MySQL Connector/C 6.0.2 用の Visual Studio 2010 ビルド ファイルを生成しようとすると、次の 2 つのエラーが発生します。
問題はCPackにあるように見えますが、ここで何が問題なのかはわかりません...
c - cpackはライブラリを見つけることができません、ターゲットはこのディレクトリに存在しません
apr-1はapacheポータブルランタイムであり、共有ライブラリを作成するために自分でダウンロードしてコンパイルしました(したがって、cmakeによって作成されたものではありません)。ターゲットシステムでCPackを実行した後、このライブラリに対してリンクする必要があります。
私の開発プロジェクトディレクトリ:
私のCMakeLists.txtの場合、すべてが正常にインストールされますが、ライブラリの新しい場所が見つからないため、リンクの問題が発生します。
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/libs)
を使用しているので、これは必要ないので削除しましたFIND_LIBRARY
。
そして、以下を追加しました:
すべてが正常にインストールされますが、実行可能ファイルをチェックして、リンク先のライブラリを確認するとapr-1
、間違った場所にあるため、実行可能ファイルを見つけることができません。
これは、インストールパッケージをコンパイル元とは異なる新しい場所に抽出したためです。コンパイルされたディレクトリから、これを取得します。これは正常に実行されます。
インストール後、ターゲットのインストールマシンにこのディレクトリ構造があるため、実行可能ファイルは新しいlibs/apr-1
ライブラリにリンクします。
さらなる提案に感謝します、
gcc(GCC)4.7.2cmakeバージョン2.8.9Fedora 17
こんにちは、
次のエラーが発生します:
私は次のディレクトリを持っています:
私のルートCMakeLists.txtには、次のものがあります。
私のsrcディレクトリには、次のCMakeLists.txtがあります。
問題はここにあるこの行です:
私は次のことをやってみました
しかし、それでもライブラリを見つけることができません。
また、次のようなパスを使用します。
このようにディレクトリを配置できるようにしたいので、各ライブラリを指定する必要はありませんが、次のようなディレクトリだけを指定する必要があります。
したがって、そのディレクトリ内のすべてのライブラリを見つけることができます。私はそれらの約5つを持っています。
提案をありがとう、