我在Mac上创建了一个Netbeans CPP项目,并将其上传到git。这个项目有使用Windows的合作者。
当我将项目推入github时,我也推了makefile信息(整个项目)。现在合作者得到构建错误,因为引用包含我的Mac文件路径。
Windows机器已经安装cygwin。
- 如何解决?如何使它与平台无关?
- 我(和合作者)应该做些什么来不影响其他工人?
ANSWER: Netbeans有一个选项(在c++的项目属性中),将文件路径设置为绝对路径或相对路径。所以我所要做的就是设置相对选项并推动更改。这个项目开始为每个人工作!瞧! !
Netbeans有一个选项(在c++下的项目属性中),将文件路径设置为绝对路径或相对路径。所以我所要做的就是设置相对选项并推动更改。这个项目开始为每个人工作!瞧! !
我发现NetBeans为c++生成的项目文件相当笨重,而且不太适合人类维护。虽然它们确实倾向于相对地从项目的根目录引用路径(方便将项目复制到不同的目录),但是需要维护的项目文件太多了。如果它们不起作用,你就完了。
我不知道NetBeans是否允许您在项目设置对话框中为路径指定环境变量。据我所知,宏/变量的内容基本上没有文档记录。但是,如果您知道如何做到这一点,那么可以通过环境变量而不是在项目设置窗口中硬编码路径来定义所有文件路径依赖项。远程开发人员只需要在他们的机器上重新定义环境变量。
但我认为一个更好的解决方案是不使用NetBeans自动生成的Makefile从项目设置。相反,声明您自己的Makefile并从"一个现有的Makefile"创建一个NetBeans项目类型。我发现这很有效。
然后你可以在Makefile的顶部设置一行,如下所示:
include common.inc
"共同的地方。"Inc"包括所有依赖于机器的硬编码库路径。下面是我的一个例子:
BOOST_INCLUDE := -I/home/jselbie/lib/boost_1_46_1
OPENSSL_INCLUDE := -I/home/jselbie/lib/openssl
然后我的Makefile只通过变量名引用这些目录。因此,当我在不同的机器上使用不同的配置移动项目时,我只需要更新common.inc.
然后如果其他人想使用NetBeans来编译我的项目,他们只需要从"一个现有的Makefile"选项创建一个NetBeans项目。
相对文件路径的选项实际上不在项目属性中!相反,它在顶部菜单栏中。选择"工具",然后选择"选项",然后点击"C/c++"选项卡,下面第二个方框是"文件路径模式",选择"always relative"