c++ - 如何在 Eclipse 中使用 nix

标签 c++ eclipse cmake nix

我正在为我的 C++ 项目尝试使用包管理器 nix

默认.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 $1"

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

bash ${project_loc}/build.sh

就这些。

关于c++ - 如何在 Eclipse 中使用 nix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36933080/

相关文章:

c++ - 程序不会运行非常大的数字

java - 在 MikroTik Winbox 的注册表编辑器中添加自定义协议(protocol)

cmake - 如何使用 cmake 的 target_link_libraries 来链接匹配 glob 的库?

c++ - CMake 在 C++ 项目中包含目录和环境变量

c++ - Qt5 C++ 自动点击鼠标

c++ - 在宏中替换 #defined 值

regex - Ant Build 从 svn 日志输出中读取版本号

java - 如何告诉布局将所有内容间隔 50/50?

java - GWT 如何修改默认项目示例代码?

windows - 从 CMake/PkgConfig 为 pkg-config 提供选项 --define-variable