在我正在工作的公司中,我们使用Eclipse开发Windows,Visual Studio和Linux的交叉编译。我们的最终应用程序在Linux上运行我试图说服他们在Linux上构建所有东西是多么容易和快速,而不是使用旧的交叉编译器并且有各种奇怪的错误。当我在Linux上使用更高版本的gcc编译它们时,一些错误就会消失。此外,由于交叉编译器很旧,我们无法使用C ++ 11功能。
我遇到的一个主要问题是,由于我们的项目是在Windows上开发的,因此我很难对标题进行格式化!例如,假设我有一个名为io
的文件夹,其中包含头文件Demo.h
。那么这个
#include <IO\demo.h>
在Windows上运行正常。但是在Linux上并不是因为Windows不区分大小写,并且\
和/
都可以在Windows上运行。在Linux上它必须像这样
#include <io/Demo.h>
否则我收到一个错误,它无法找到指定的头文件。我们正在开展20多个主要项目,每个项目大约3-4 GB。我已经修改了其中一个。我花了大约7个小时才完成它。
是否有任何工具可以帮助我加快转换速度?
我们的源代码是95%C ++,其余的是C。
编辑:
关闭话题?甜蜜的耶稣
EDIT2:
Here是一个与我非常相似的问题。
致MikeCAT,πάνταῥεῖ,Alexander O'Mara,IInspectable,Andrew Medico:
RUN GUYS,把它投到地狱并将其标记为偏离主题。
答案 0 :(得分:5)
官方标准是使用#include
作为文件路径分隔符,使用c-preprocessor来解析\
语句中的路径。
sed
的使用似乎是MSVC扩展。
官方工具用于解决Linux下大型代码库的此类问题,awk
和find
。
修复区分大小写有点困难,但可以使用来自Query qry = session.createQuery("from HostelHome p");
List l =qry.list();
System.out.println("Hostel Records : "+l.size());
Iterator it = l.iterator();
System.out.println("Room No Vacancy");
while(it.hasNext())
{
Object o = (Object)it.next();
HostelHome p = (HostelHome)o;
System.out.print(p.getRoom_no()+" ");
System.out.println(+p.getVacancy());
System.out.println("----------------------");
}
的匹配结果的一些技巧来完成...