我对各种平台/编译器("实现")/框架分配给C和C++预处理器宏的目的感兴趣NDEBUG.
该Ç以及C++标准只提及这个定义一次,即控制的行为assert()宏.
我会要求只包含特定的答案,您知道C或C++ 的某个平台/框架/库使用该NDEBUG定义来启用或禁用除标准定义的assert()宏之外的任何其他内容.
提出这个问题的一个原因是MS(Visual-C++)总是(?)使用"他们的" _DEBUG定义来区分调试和发布内容,我想知道这是否是图书馆/平台的常见做法"自己的"调试定义或其他库/平台是否NDEBUG用于调试相关的东西.
在标题中,我需要一个跨平台的2D图形库,并提供简单的功能,如Basic; 基本上,我只需要将像素绘制成某种颜色 - 我不需要硬件加速或任何类型的3D支持.我发现了几个,但它们不是跨平台的.
有谁知道我的解决方案?
这可能有一个明显的答案,但我是初学者.我有一个"模块"(实际上只是一个包含我经常使用的一系列函数的文件),在开始时我导入了许多其他模块.但是,由于我在许多系统上工作,并非所有模块都可以在任何特定计算机上加载.为了使事情稍微变得困难,我在导入它时也会更改包的名称 - 例如,matplotlib缩写为mp.
我想要做的只是加载我正在使用的系统上存在的那些模块,并对那些没有的模块进行一些错误处理.我能想到的唯一方法就是将每个import语句放在它自己的try块中,这看起来非常不像pythonic.如果我将它们全部放在同一个try块中,那么抛出错误的模块将阻止后续模块的加载.任何可能让事情看起来更漂亮的想法?如果我不想改名,那就太容易了......
我想在Python中创建一个ramdisk.我希望能够以跨平台的方式实现这一点,因此它可以在Windows XP到7,Mac和Linux上运行.我希望能够读取/写入ramdisk,就像它是普通驱动器一样,最好带有驱动器盘符/路径.
我想要的原因是为脚本编写测试,创建具有特定结构的目录.我想在ramdisk中完全创建目录,所以我确定在测试结束后它会被完全删除.我考虑使用Python tempfile,但如果测试将在中间停止,则可能不会删除目录.我想完全确定即使有人在测试过程中拔掉计算机上的插头,它也会被删除.
是否可以使用宏来制作跨平台的睡眠代码?例如
#ifdef LINUX
#include <header_for_linux_sleep_function.h>
#endif
#ifdef WINDOWS
#include <header_for_windows_sleep_function.h>
#endif
...
Sleep(miliseconds);
...
Run Code Online (Sandbox Code Playgroud) 假设我主要是Linux用户,但我正在Go中开发一个我想要跨平台的应用程序.我四处寻找,但我似乎无法找到解释以下内容的信息:
go install是amd64 Ubuntu系统上的二进制文件,它是否也可以在其他任何人的 64位Ubuntu/Debian系统上运行?go install构建一个x86_64二进制文件,它也可以在32位Debianlikes上运行开箱即用?我的问题实际归结为"静态/可移植是怎样的链接器/编译器?"
这是我第一次尝试在C++中编写任何稍微复杂的东西,我正在尝试构建一个可以从Objective-C和.NET应用程序接口的共享库(好的,那部分后来......)
我的代码是 -
#ifdef TARGET_OS_MAC
// Mac Includes Here
#endif
#ifdef __linux__
// Linux Includes Here
#error Can't be compiled on Linux yet
#endif
#ifdef _WIN32 || _WIN64
// Windows Includes Here
#error Can't be compiled on Windows yet
#endif
#include <iostream>
using namespace std;
bool probe(){
#ifdef TARGET_OS_MAC
return probe_macosx();
#endif
#ifdef __linux__
return probe_linux();
#endif
#ifdef _WIN32 || _WIN64
return probe_win();
#endif
}
bool probe_win(){
// Windows Probe Code Here
return true;
}
int main(){
return 1;
} …Run Code Online (Sandbox Code Playgroud) 我希望能够监视进程发出的某些系统调用,主要是文件I/O调用.在Linux上,我可以使用带有合适参数的strace来逃避,但我怎样才能在Windows上执行此操作?
我主要对运行一个进程并确定它已经读取和写入的文件感兴趣.
编辑:我想从另一个进程以编程方式执行此操作.我知道ProcessMonitor,但我希望以一种形式接收数据,我可以将其导入另一个程序以进行进一步分析.
编辑:如果我进一步缩小我的要求,它可能足以监视对CreateFile()的调用.我真的只对打开的文件感兴趣,如果打开它们进行读/写或只是阅读.我没有说明的另一个要求是速度相当重要; 我正在计划为编译C++文件这样做,并且提取一个生成20MB日志文件的完整GUI会产生过高的开销.
编辑:如果它不需要管理权限也会很好.
我有一个C库,我构建为Linux的共享对象和带有MinGW32的Windows的DLL.API取决于几个数据文件(统计模型),我真的想用SO/DLL滚动,因此部署只是一个文件.
看起来我可以使用编译的"资源文件"为Windows实现这一点windres,但后来我必须为Windows编写一堆资源处理代码,而我仍然坚持使用Linux上的文件.
有没有办法在Linux上实现相同的功能?
更好的是,有便携式解决方案吗?
我是Python,我有一个特定文件夹的路径.我想使用该系统的默认文件夹资源管理器打开它.例如,如果它是Windows计算机,我想使用资源管理器,如果它是Linux,我想使用Nautilus或其他默认设置,如果它是Mac,我想使用任何Mac OS的浏览器.
我怎样才能做到这一点?