如何设置C++的跨平台编译(win7中的NetBeans和linux中的make)

问题描述 投票:0回答:1

我想使用我喜欢的 editro NetBeans 设置一个 gcc C++ 项目(因为它与 gcc 一起使用),这将依赖于一些外部库。我希望它在 NetBeans 中使用 gcc 链进行编译,并在生产环境中使用 Linux 下的命令行 make 进行编译。最好先在 NetBeans 中创建项目,然后修改一些内容以在 Linux 中接受它。

这些库将是相同的,但位于不同的文件夹中,因此我需要分隔这些库的包含路径,并且在编译时必须选择正确的路径。

此外,我可能需要使用少量的条件编译,因为在 Windows 和 Linux 下,某些 #include 指令可能包含也可能不包含库子路径。

有什么有用的指南可以实现这一点吗?

c++ linux makefile netbeans cross-compiling
1个回答
2
投票

假设您正在 Win7 上使用 Netbeans 进行开发,并且您有一台可通过 TCP/IP 访问的 Linux 计算机(我们称其为服务器),并正确安装了所有软件包(gcc 和您的程序依赖项)。

您需要:

  • 在 Netbeans 服务中添加构建主机并设置
    ssh
    连接(当然,您的服务器需要守护进程
    sshd
    处于活动状态)。 Netbeans 将寻求一个工具链。如果一切顺利:这是您的远程构建主机;
  • 如果您的 Linux 服务器上安装了所有软件包(我的意思是从软件包管理器安装),源代码将位于
    /usr/include
    中,库位于
    /usr/lib
    中;
  • 在您的项目属性中,为您的服务器应用程序定义新的配置文件(选择正确的构建主机)并解决依赖关系。

然后,在针对 Win7 目标进行编译时,使用 Netbeans 为您创建的默认配置文件(构建主机是 localhost),在针对 Linux 目标进行编译时,使用您创建的新配置文件(构建主机是您的 Linux 服务器)。

为了在包含时最大程度地减少条件预处理器代码,您只需使用相对路径并在 Win7 上为 Linux 服务器所具有的依赖项保留相同的文件层次结构。

此外,您还可以在Linux服务器上运行

gprof
valgrind
等开发工具来检查您的工作。

这应该很容易实现。

© www.soinside.com 2019 - 2024. All rights reserved.