C++;跨平台开发(Windows和Mac OS) 我有了一个新的任务来研究C++跨平台(MAC/Win)实用工具的开发方法。 我已经使用了7种不同的“粉红色”语言,比如C++,java,托管C++。 但是在这个任务中,需要支持Mac,而在Mac上运行的.NET真的很痛苦(从其他使用它的人那里知道这一点) P>所以我开始考虑C++,如果可以跨平台开发C++。 应用程序将不包含任何GUI,但将包含大量系统API调用和大量业务逻辑分析

C++;跨平台开发(Windows和Mac OS) 我有了一个新的任务来研究C++跨平台(MAC/Win)实用工具的开发方法。 我已经使用了7种不同的“粉红色”语言,比如C++,java,托管C++。 但是在这个任务中,需要支持Mac,而在Mac上运行的.NET真的很痛苦(从其他使用它的人那里知道这一点) P>所以我开始考虑C++,如果可以跨平台开发C++。 应用程序将不包含任何GUI,但将包含大量系统API调用和大量业务逻辑分析,c++,windows,macos,cross-platform,cross-compiling,C++,Windows,Macos,Cross Platform,Cross Compiling,有没有什么图书馆可以完成这样的任务? 如果我能正确地理解你的问题,你需要开发跨平台C++的唯一的方法就是得到正确的编译器。您可以在这两种平台上使用GCC,甚至可以为VisualStudio和xcode使用两个不同的项目文件。这取决于你。就个人而言,我更喜欢GCC 关于代码本身,这取决于您如何使用它。STD在两个平台上都可用(STD::vector、STD::string等),因此代码应该在两个平台上正确编译 编辑:顺便说一句,大多数特定于平台的东西都可以通过开源代码获得(比如boost,尽管我个

有没有什么图书馆可以完成这样的任务?
如果我能正确地理解你的问题,你需要开发跨平台C++的唯一的方法就是得到正确的编译器。您可以在这两种平台上使用GCC,甚至可以为VisualStudio和xcode使用两个不同的项目文件。这取决于你。就个人而言,我更喜欢GCC

关于代码本身,这取决于您如何使用它。STD在两个平台上都可用(STD::vector、STD::string等),因此代码应该在两个平台上正确编译


编辑:顺便说一句,大多数特定于平台的东西都可以通过开源代码获得(比如boost,尽管我个人不太喜欢boost)。如果需要,您甚至可以查看其他跨平台的开源项目(ogre3d等) 关于代码本身,这取决于您如何使用它。STD在两个平台上都可用(STD::vector、STD::string等),因此代码应该在两个平台上正确编译


编辑:顺便说一句,大多数特定于平台的东西都可以通过开源代码获得(比如boost,尽管我个人不太喜欢boost)。如果需要,您甚至可以查看其他跨平台的开源项目(ogre3d等)

工具允许使用VisualStudio在Windows上和XCube上构建程序,而不必手动管理单独的Visual Studio和XCudio项目文件。

<是的,可以编写标准、ISO C++和在两个平台上运行程序。

当您需要使用特定于平台的API(例如,在Windows上使用Win32,在Mac OS上使用POSIX API)实现某些功能时,您要做的是编写自己的包装函数,抽象掉特定于平台的详细信息,然后在程序的其余部分使用该包装


像这样的工具将允许您使用Visual Studio在Windows上构建程序,使用Xcode在Mac上构建程序,而无需手动管理单独的Visual Studio和Xcode项目文件。

C++似乎是一个不错的选择。使用现代编译器(GCC或Clang,最新版本),使用C++11和标准库。如果您需要更多,可以使用多个库集合,请至少签出。伙计,很抱歉提出了一个愚蠢的问题,很遗憾,我不知道本机编译是如何工作的,但我的意思是,如果我调用simple CreateProcess winApi函数,它是否适用于两种平台?它不会直接工作,这就是为什么使用库来封装平台之间的差异,例如,代码> STD::线程< /代码>将在编译器及其标准库支持的所有平台上创建一个新线程。C++似乎是一个不错的选择。使用现代编译器(GCC或Clang,最新版本),使用C++11和标准库。如果您需要更多,可以使用多个库集合,请至少签出。伙计,很抱歉提出了一个愚蠢的问题,很遗憾,我不知道本机编译是如何工作的,但我的意思是,如果我调用simple CreateProcess winApi函数,它是否适用于两种平台?它不会直接工作,这就是为什么要使用库来封装平台之间的差异,例如,
std::thread
将在编译器及其标准库支持的所有平台上创建新线程。