从Mac到Windows的Netbeans项目

时间:2011-10-25 23:03:43

标签: windows macos git netbeans makefile

我在Mac上创建了一个Netbeans CPP项目并将其上传到git中。该项目有合作者使用Windows。

当我将项目推送到github时,我也推送了makefile信息(整个项目)。现在,协作者正在获取构建错误,因为引用包含我的Mac文件路径。

Windows机器安装了cygwin。

  1. 我该如何解决?
  2. 我如何让它与平台无关?
  3. 我(和合作者)应该做些什么来不影响其他工人?

  4. ANSWER :Netbeans有一个选项(在c ++下的项目属性中),可以将文件路径设置为绝对路径或相对路径。所以我必须做的是,设置相对选项并推动更改。该项目开始为每个人工作! VOILA !!!!!!!!

3 个答案:

答案 0 :(得分:3)

Netbeans有一个选项(在c ++下的项目属性中),可以将文件路径设置为绝对路径或相对路径。所以我必须做的是,设置相对选项并推动更改。该项目开始为每个人工作! VOILA !!!!!!!!

答案 1 :(得分:1)

我发现NetBeans for C ++生成的项目文件相当不合适,并且人类无法维护。虽然他们确实倾向于从项目的根目录相对引用路径(便于将项目复制到不同的目录),但是要维护的项目文件太多了。如果他们不工作你就会解决。

我不知道NetBeans是否允许您在项目设置对话框中为路径指定环境变量。据我所知,宏/变量的东西在很大程度上没有记录。但是,如果您知道如何执行此操作,则在项目设置窗口中通过环境变量而不是硬编码路径定义所有文件路径依赖项。远程开发人员只需重新定义其计算机上的环境变量即可。

但我认为更好的解决方案是不使用项目设置中的NetBeans自动生成的Makefile。相反,声明您自己的Makefile并从“现有Makefile”创建NetBeans项目类型。我发现效果很好。

然后你可以在Makefile的顶部有一行代码如下:

include common.inc

其中“common.inc”包括所有与机器相关的硬编码库路径。这是我的一个例子:

BOOST_INCLUDE := -I/home/jselbie/lib/boost_1_46_1
OPENSSL_INCLUDE := -I/home/jselbie/lib/openssl

然后我的Makefile只通过变量名引用这些目录。因此,当我使用不同的配置在不同的机器上移动项目时,我只需要更新common.inc。

然后,如果其他人想要使用NetBeans来编译我的项目,他们只需要从“现有的Makefile”选项创建一个NetBeans项目。

答案 2 :(得分:1)

相对文件路径的选项实际上不在项目属性中!相反,它位于顶部菜单栏中..选择“工具”,然后选择“选项”,然后单击“C / C ++”选项卡,第二个框则“文件路径模式”选择“始终相对”