2

CMAKE を使用して makefile を生成し、ビルドする Code Composer Studio (Eclipse) プロジェクトがあります。プロジェクトを Jenkins スレーブ (Win10 x64) に手動でインポートしてコマンド ラインから実行すると、プロジェクトは期待どおりにコンパイルされますが、ビルドが Jenkins によって処理されると失敗します。失敗は常に同じパターンに従います。つまり、オブジェクト ファイルのパスから単数の文字が削除されます。たとえば、参照されているオブジェクト ファイルが見つからないため、リンクが失敗します[Repo directory]/Cockpit_Scaling_and_Exceedance_data.dir[Repo direcory]/Cockpit_Scaling_and_Exceedance_ata.dir

アカウント環境変数とシステム環境変数の間に違いがないことを確認し、Jenkins とコマンドの間の多くの違いを取り除くために、システムの代わりにスレーブで管理者アカウントを使用するように Jenkins サービスを構成しました。可能な限りライン。

プロジェクトは、他の Jenkins スレーブ (Win10 x64 も) の 1 つを使用して正常にビルドされるため、Windows 10 の問題でも、Jenkins 構成の問題でもないことがわかります。2 つのスレーブ マシンの構成に違いが見つからないので、誰かがこのパスの問題を探す場所を提案できることを期待していました。

4

1 に答える 1

1

オブジェクト ファイルへのパスが破損している理由はわかりませんでしたが、Jenkins を介してスレーブ上でプロジェクトを正常にビルドできました。私がしたことは、すべてのシステム環境変数をユーザー環境変数に変更したことだけです。コピペしたので、変数自体は変わっていないことが分かります。

whoamiJenkinsがシステムではなくユーザーとして実際に実行されていることを確認するためにビルドの最初に呼び出しを挿入したため、これでこの問題が修正された理由はわかりません。この時点から、すべての環境変数はシステムではなくユーザーに固有のものになると思います...

編集:問題が再発しました。この問題の背後にある原因を追跡する作業はこれ以上進んでいませんが、Windows コマンド プロンプトではなく bash 環境でスクリプトを実行すると、この症状が見られないことがわかりました。幸いなことに、スクリプトはすべて、両方の環境で実行できるように作成されているため、同僚にスクリプトの代わりに bash を使用してもらいました。

于 2016-04-26T20:05:03.423 に答える