如何在 Eclipse 中使用 nix
How to use nix with Eclipse
我正在尝试为我的 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: No such file or directory
我看到 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 的行为。
从浏览量来看,这个问题非常具体。但是,我以某种方式找到了解决方案。
导出到 Eclipse 项目后,我创建了 builder.sh 文件:
export NIX_PATH=nixpkgs=/home/xxxx/.nix-defexpr/channels/nixpkgs
/home/xxxx/.nix-profile/bin/nix-shell default.nix --run "make "
然后我在 C\C++ General -> C\C++ Make Project
中将文件设置为构建命令
bash ${project_loc}/build.sh
就这些了。
我正在尝试为我的 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: No such file or directory
我看到 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 的行为。
从浏览量来看,这个问题非常具体。但是,我以某种方式找到了解决方案。
导出到 Eclipse 项目后,我创建了 builder.sh 文件:
export NIX_PATH=nixpkgs=/home/xxxx/.nix-defexpr/channels/nixpkgs
/home/xxxx/.nix-profile/bin/nix-shell default.nix --run "make "
然后我在 C\C++ General -> C\C++ Make Project
中将文件设置为构建命令bash ${project_loc}/build.sh
就这些了。