混合开发环境
Posted
技术标签:
【中文标题】混合开发环境【英文标题】:hybrid development environment 【发布时间】:2011-10-18 22:09:37 【问题描述】:从具有干净文件系统层次结构的 Linux 迁移到 Windows,我想设置一个或多个专用文件夹来保存编译器及其相关库,例如 sysfs,类似 sysfs ...我想找到优雅的方式来做到这一点。
我主要使用 C/C++ java 和 python 进行开发。甚至对于 C++ 项目,管理使用 Visual Studio 和 mingw 构建的库也很痛苦。如果您以前从事过此主题的工作,我的目标是分享您的经验。您是否为每个编译器设置了一个专用的开发树,例如每个标准架构(ia32 x86_64 等),或者您只是按照安装程序将所有内容放入程序\/文件等中?
提前谢谢你
【问题讨论】:
另外,您所说的“混合”开发是指使用多种语言的项目,还是您的 C++ 项目必须可在多种环境中构建,或者只是指您在所有三个平台上工作的项目? 【参考方案1】:我过去看到的是这样的项目:
MyProject \
docs \
source\
includes\
tests \
targets \
gcc\
xcode\
vs2008\
vs2010\
MyProject\
Debugx86\
Debugx64\
Releasex86\
Releasex64\
这允许所有编译器将他们的项目文件分开,并且都使用相同的源。这也可以防止编译器/架构之间的意外交叉链接
【讨论】:
我很确定 OP 是在询问将编译器二进制文件(例如 gcc.exe 等)和库文件放在哪里,而不是项目文件(尽管我可以看到它看起来可能不是这样)。 我认为这是一个两部分的问题,第二部分似乎在问这个问题。第一部分的答案是“谁在乎二进制文件在哪里?”【参考方案2】:这并不完全正确,但我自己正在从 Linux gcc/make 转换为 MSVS。范式转变可能很棘手。我只会分享上周的啊哈!时刻。
MSVS 太愿意将绝对路径名存储在项目元数据中,这会导致您在尝试使用时感到沮丧,例如移动到另一台计算机。宏功能允许您在额外的包含或库目录等位置象征性地指定各种根目录。使用它们。
【讨论】:
【参考方案3】:我通常让 VS、Qt/mingw 等将自己安装到他们想去的地方——即我保持默认。关于我的 src-code-tree 和 build-tree,我总是花很多时间来设置它们。我首先尝试使用 IDE(在我最近的案例中是 VS2008),观察默认行为,然后才设计我的 src-tree 和 bld-free。到目前为止,我使用 VS2008 使用相对简单的安排:
c:\prj\common_lib_cpp c:\prj\common_lib_cpp\lib1 c:\prj\common_lib_cpp\lib2 c:\prj\common_lib_csharp c:\prj\common_lib_csharp\lib3 c:\prj\my_exe_prj1 c:\prj\my_exe_prj2
我有点过于简单化了,但不多。这对我来说已经运行了 6 个多月,没有什么大问题。前段时间我在 Nuance 工作时,src-tree 设计得非常仔细,基于 make 的构建系统庞大、复杂且健壮。 Windows 和 linux(几种风格)构建使用相同的 src-tree。这实际上是一项非常艰巨的任务。 Adrian Neagu (Nuance) 曾经有关于这个主题的优秀博客/网络文章。
【讨论】:
以上是关于混合开发环境的主要内容,如果未能解决你的问题,请参考以下文章