相关疑难解决方法(0)

C++跨平台库和绑定的最佳文件夹结构

我即将开始使用C++编写的跨平台库.接下来,我打算为其他语言实现绑定,例如Python,Java等.这些库需要在主要平台上可用:win32,Linux和Mac OSX.

虽然该应用程序实际上是一个库,但是一些基本的控制台程序将与它一起捆绑以进行演示和测试.

在开始在Subversion中存储东西之前,我想提出一个最佳的文件夹结构.

我想的是:

/project                    //Top level folder

        /bin                //Binaries ready for deployment
            /linux_amd64    //Linux AMD64 platform
                  /debug    //Debug build - duplicated in all platforms
                  /release  //Release build - duplicated in all platforms
            /linux_i386     //Linux 32-bit platform
            /macosx         //Mac OS X
            /win32          //Windows 32-bit platform
                  /cygwin   //Windows 32-bit platform compiled with Cygwin
                  /vs.net   //Windows 32-bit platform compiled with Visual Studio .NET
            /win64          //Windows 64-bit platform

        /build              //Make and build files, IDE project files
            /linux_amd64    //Linux AMD64 platform
            /linux_i386     //Linux …
Run Code Online (Sandbox Code Playgroud)

c++ cross-platform

54
推荐指数
2
解决办法
2万
查看次数

多个目录中的头文件:最佳实践

我是C Newb

我用动态语言(javascript,python,haskell等)编写了很多代码,但我现在正在为研究生院学习C,我不知道我在做什么.

问题

最初我使用makefile在一个目录中构建我的所有源代码,该代码运行得相当好.但是,我的项目正在增长,我想将源分成多个目录(单元测试,工具,核心等).例如,我的目录树可能如下所示:

.
|-- src
|   |-- foo.c
|   |-- foo.h
|   `-- main.c
`-- test
    `-- test_foo.c
Run Code Online (Sandbox Code Playgroud)

test/test_foo.c使用src/foo.csrc/foo.h.使用makefile,构建它的最佳/标准方法是什么?优选地,将存在用于构建项目的一个规则和用于构建测试的规则.

注意

我知道还有其他方法可以做到这一点,包括autoconf和其他自动解决方案.但是,我想了解发生了什么,并且能够从头开始编写makefile,尽管它可能不切实际.

任何指导或提示将不胜感激.谢谢!

[编辑]

所以到目前为止给出的三个解决方案如下:

  • 将全局使用的头文件放在并行include目录中
  • 使用声明中的路径,#include#include "../src/foo.h"
  • 使用-I开关通知编译器包含位置

到目前为止,我喜欢-I交换机解决方案,因为它不涉及在目录结构更改时更改源代码.

c makefile header-files

8
推荐指数
1
解决办法
4985
查看次数

标签 统计

c ×1

c++ ×1

cross-platform ×1

header-files ×1

makefile ×1