如何在Eclipse中使用nix

问题描述 投票:2回答:1

我正在尝试将包管理器nix用于我的C ++项目。

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'es路径:

 /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的行为。

c++ eclipse cmake nix
1个回答
1
投票

从问题的数量来看,问题是非常具体的。但是,我以某种方式找到了解决方案。

导出到Eclipse项目后,我创建了builder.sh文件:

export NIX_PATH=nixpkgs=/home/xxxx/.nix-defexpr/channels/nixpkgs
/home/xxxx/.nix-profile/bin/nix-shell default.nix --run "make $1"

然后我在C \ C ++ General - > C \ C ++ Make Project中将文件设置为构建命令

bash ${project_loc}/build.sh

就这样。

© www.soinside.com 2019 - 2024. All rights reserved.