标签: cross-platform

C++中与平台无关的GUID生成?

在不依赖于特定于平台的工具的情况下,以C++编程生成GUID或UUID的最佳方法是什么?我正在尝试为模拟中的对象创建唯一标识符,但由于项目是跨平台的,因此无法依赖Microsoft的实现.

笔记:

  • 由于这是一个模拟器,我真的不需要加密随机性.
  • 如果这是一个32位数字,那将是最好的.

c++ uuid cross-platform guid

56
推荐指数
3
解决办法
6万
查看次数

监控文件/目录的内容?

我正在寻找一个跨平台文件监控python包?我知道可以使用pywin32监视windows上的文件,并且有些软件包可以在Linux/Unix上运行,但是有人知道跨平台的吗?

python filesystems monitoring cross-platform file

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

Boost.Process在哪里?

我需要执行一个程序并在c ++中检索它的stdout输出.我希望我的代码也是跨平台的.

最近我发现了针对您所有跨平台需求的Boost c ++库的精彩世界,我想我会去boost.org并阅读Boost.Process的文档.令我惊讶的是,它不存在!然后我开始弄清楚Boost给他们的跨平台库启动外部进程的名称,但到目前为止还没有找到它.

谷歌搜索带我去了Julio M. Merino Vidal的Boost.Process,它似乎是我正在寻找的非官方Boost库.奇怪的是,我似乎无法在该网站上找到下载链接.似乎该项目最近没有任何进展.

我终于能够在外部网站上找到Vidal的Boost.Process的下载链接,并且现在将使用它,但是我非常惊讶于我需要付出的努力才能获得跨平台的c ++库.与外部流程互动.

那么,为什么没有正式的Boost.Process?这似乎是一个非常有价值的补充.或者我完全忽视了这里明显的解决方案?您是否可以建议其他跨平台库来管理外部流程的简单启动和交互?

c++ boost cross-platform platform-independent boost-process

56
推荐指数
4
解决办法
3万
查看次数

如何在Perl中检测操作系统?

我在Mac,Windows和Ubuntu上安装了Perl.如何在脚本中告诉哪一个是哪个?提前致谢.

编辑:我被问到我在做什么.它是一个脚本,是我们跨平台构建系统的一部分.该脚本会递归目录并确定要构建的文件.有些文件是特定于平台的,因此,在Linux上我不想构建以_win.cpp结尾的文件等.

perl cross-platform

55
推荐指数
4
解决办法
6万
查看次数

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万
查看次数

正则表达式以匹配跨平台换行符

我的程序可以接受换行符为\n,\ r \n或\ r \n的数据(例如Unix,PC或Mac样式)

构造一个匹配编码的正则表达式的最佳方法是什么?

或者,我可以在输入上使用universal_newline支持,但现在我有兴趣看看正则表达式是什么.

python regex cross-platform eol

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

为什么Qt使用自己的make工具qmake?

我刚开始使用Qt并注意到它使用了自己的make工具qmake.

  • 为什么Qt使用自己的make工具?
  • 有什么特别的东西阻止它使用标准的制作工具吗?
  • qmake是否调用GCC C++编译器?

c++ qt qmake cross-platform

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

为什么bit endianness是bitfields中的一个问题?

任何使用位域的可移植代码似乎都区分了小端和大端平台.有关此类代码的示例,请参阅linux内核中struct iphdr声明.我无法理解为什么位字节序是一个问题.

据我所知,bitfields纯粹是编译器构造,用于促进位级操作.

例如,考虑以下位域:

struct ParsedInt {
    unsigned int f1:1;
    unsigned int f2:3;
    unsigned int f3:4;
};
uint8_t i;
struct ParsedInt *d = &i;
只是一种简洁易懂的说法d->f2.

但是,无论架构如何,位操作都是明确定义的并且可以正常工作.那么,bitfields怎么不便携?

c portability cross-platform low-level bit-fields

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

如何在Visual Studio Community 2015中更新Xamarin for Android

我最近安装了Visual Studio Community 2015,我一直在关注MSDN教程"使用Xamarin构建跨平台应用程序".在设计应用程序外观的时候,我选择了Resources\layout文件夹中的Main.axml文件,Android设计器失败了:

安装的Android SDK太旧了.需要版本24.3.4或更新版本.请更新到最新版本.

我做了很多搜索,发现其中一个较新版本的Android SDK导致Xamarin Android设计器失败.我找到了一个版本24.4.1,表明这个设计师问题是固定的.

如何更新Visual Studio的这一部分(即Xamarin.Android)?以下是我在Windows 7上安装的一小部分: 在此输入图像描述

android cross-platform xamarin visual-studio-2015

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

在跨平台代码中处理stdafx.h

我有一个基于Visual Studio C++的程序,它使用预编译的头文件(stdafx.h).现在我们使用gcc 4.x将应用程序移植到Linux.

问题是如何在两种环境中处理预编译的头文件.我用Google搜索但无法得出结论.

显然,我希望stdafx.h在Visual Studio中保留,因为代码库非常大,预编译的头文件可以增加编译时间.

但问题是在Linux中该怎么做.这是我发现的:

  1. 保持stdafx.h原样.gcc比VC++编译代码要快得多(或者只是我的Linux机器更强...... :)),所以我对这个选项很满意.
  2. 这里使用方法- stdafx.h看起来像(USE_PRECOMPILED_HEADER仅为VS 设置):

    #ifdef USE_PRECOMPILED_HEADER
    ... my stuff
    #endif 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用此处的方法- 编译VC++ /FI隐式包含stdafx.h在每个cpp文件中.因此,在VS中,您的代码可以轻松切换,无需预编译头文件即可编译,无需更改代码.
    我个人不喜欢依赖,而这个混乱stdafx.h正在推动一个庞大的代码库.因此,该选项对我很有吸引力 - 在你没有的Linux上stdafx.h,同时仍然/FI只能在VS上打开预编译的头文件.

  4. 在Linux上编译stdafx.h只作为预编译头(模仿Visual Studio)

你的意见?还有其他方法可以解决这个问题吗?

c++ gcc cross-platform stdafx.h visual-studio

53
推荐指数
1
解决办法
3万
查看次数