2016-04-29 42 views
0

我正在尝试为我的C++项目使用包管理器nix如何在Eclipse中使用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项目(我做了下尼克斯壳):

cd .. 
mkdir lynx_eclipse 
cd lynx_eclipse 
cmake -G"Eclipse CDT4 - Unix Makefiles" -D PLATFORM:STRING="posix" -DCMAKE_BUILD_TYPE=Debug ../lynx/ 

在Eclipse已经打开导出的项目中,我发现,包括路径是罚款和点/尼克斯/存储/ *。但是,当我尝试建立的项目,我有一个错误:

gtest/gtest.h: No such file or directory

我看到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的行为。

回答

0

根据视图的数量来判断问题是非常具体的。不过,我以某种方式找到了解决方案。

导出后到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++使项目

bash ${project_loc}/build.sh 

就是这样。

+0

(请注意,在StackOverflow中,欢迎您“接受”自己的答案,将问题标记为“已回答”) – akavel