C++ プロジェクトにパッケージ マネージャーnixを使用しようとしています。
default.nix:
{ pkgs ? import <nixpkgs> {} }:
let
stdenv = pkgs.stdenv;
in rec {
myProject = stdenv.mkDerivation {
name = "lynx";
version = "dev-0.4.0";
buildInputs = [
pkgs.cmake
pkgs.gtest
];
};
}
問題なくcmakeを使用して、プロジェクトをそのディレクトリにビルドしました。次に、プロジェクトを Eclipse プロジェクトとしてエクスポートしました ( nix-shellで実行しました)。
cd ..
mkdir lynx_eclipse
cd lynx_eclipse
cmake -G"Eclipse CDT4 - Unix Makefiles" -D PLATFORM:STRING="posix" -DCMAKE_BUILD_TYPE=Debug ../lynx/
エクスポートされたプロジェクトを Eclipse で開いたところ、インクルード パスに問題がなく、/nix/store/* を指していることがわかりました。しかし、プロジェクトをビルドしようとすると、エラーが発生します:
gtest/gtest.h: そのようなファイルまたはディレクトリはありません
Eclipse が nix のパスをコンパイラ フラグに追加していないことがわかります。
/nix/store/ix03iknfgyrx7421fppjdczd9r4sw7pz-gcc-wrapper-5.3.0/bin/g++ -I/home/ubuntu-pc/dcs/lynx/inc -I/home/ubuntu-pc/dcs/lynx_eclipse/inc -I/home/ubuntu-pc/dcs/lynx/test/./inc -std=c++11 -static-libstdc++ -g -o CMakeFiles/test_utils.dir/utils_test.cpp.o -c /home/ubuntu-pc/dcs/lynx/test/utils_test.cpp
それが問題の原因かもしれませんが、Eclipse の動作を変更する方法がわかりません。