2016-04-29 55 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