草庐IT

uboot移植

全部标签

c++ - 创建可在 linux 和 windows 上运行的可移植库

gcc(GCC)4.7.2你好,我正在创建一个将在linux上编译的共享库和一个在windows上使用相同源代码编译的dll。所以我正在为linux和windows创建一个可移植的库。在我的库头文件中是这个,即module.h#ifdef__cplusplusextern"C"{#endif#ifdef_WIN32#defineLIB_INTERFACE(type)EXTERN_C__declspec(dllexport)type#else#defineLIB_INTERFACE(type)type#endifLIB_INTERFACE(int)module_init();#ifdef

c++ - 用于 C/C++ 的可移植 zip 库(不是应用程序)

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describetheproblem以及到目前为止为解决这个问题所做的工作。关闭8年前。Improvethisquestion我希望能够在多个版本的Windows、Linux/Unix和MacOS上从我的非guiC/C++应用程序中压缩文件。用户将使用Eclipse+makefile或VisualStudio使用此应用程序进行编译和运行。我不希望用户必须单

c++ - 用于 C 和 C++ 的函数签名的可移植 UNUSED 参数宏

我有兴趣创建一个宏来消除未使用的变量警告。这个问题描述了一种通过在函数代码中编写宏来抑制未使用参数警告的方法:UniversallycompilerindependentwayofimplementinganUNUSEDmacroinC/C++但我对可以在函数签名中使用的宏感兴趣:void回调(intUNUSED(some_useless_stuff)){}这是我用谷歌挖出来的(source)#ifdefUNUSED#elifdefined(__GNUC__)#defineUNUSED(x)UNUSED_##x__attribute__((unused))#elifdefined(__

c++ - 可以以可移植方式使用新的数组放置吗?

在将可移植代码用于数组时,是否可以实际使用placementnew?您从new[]返回的指针似乎并不总是与您传入的地址相同(5.3.4,标准中的注释12似乎确认这是正确的),但我不如果是这种情况,看看如何为数组分配一个缓冲区。以下示例显示了该问题。此示例使用VisualStudio编译,导致内存损坏:#include#includeclassA{public:A():data(0){}virtual~A(){}intdata;};intmain(){constintNUMELEMENTS=20;char*pBuffer=newchar[NUMELEMENTS*sizeof(A)];A*

c++ - 在 C++11 中设置 std::thread 优先级的可移植方法

在后C++11世界中,设置std::thread实例优先级的正确方法是什么是否有至少在Windows和POSIX(Linux)环境中有效的可移植方式?或者是获取句柄并使用特定操作系统可用的任何native调用的问题? 最佳答案 无法通过C++11库设置线程优先级。我认为这在C++14中不会改变,而且我的Crystal球太模糊了,无法评论之后的版本。在POSIX中,pthread_setschedparam(thread.native_handle(),policy,{priority});在Win32BOOLSetThreadPri

c++ - 将 32 位 C++ 代码移植到 64 位 - 值得吗?为什么?

我知道x64架构的一些明显优势(更高的可寻址RAM地址等)...但是:如果我的程序没有真正需要在native64位模式下运行怎么办。我还是应该移植它吗?终止32位支持是否有任何可预见的截止日期?我的应用程序会像原生x64代码一样运行得更快/更好/更安全吗? 最佳答案 x86-64有点特殊——对于许多架构(例如SPARC),为64位模式编译应用程序不会给它带来任何好处,除非它可以有利地使用超过4GB的内存。它所做的只是增加二进制文件的大小,如果它影响缓存行为,实际上会使代码变慢。但是,x86-64不仅为您提供了64位地址空间和64位整

c++ - 是否有可移植的等价于 DebugBreak()/__debugbreak?

在MSVC中,DebugBreak()或__debugbreak导致调试器中断。在x86上它相当于写“_asmint3”,在x64上它是不同的。使用gcc(或任何其他标准编译器)编译时,我也想中断调试器。是否有独立于平台的功能或内在功能?我看到了XCodequestion关于这一点,但它似乎不够便携。旁注:我主要想用它来实现ASSERT,我知道我可以为此使用assert(),但我也想在代码中编写DEBUG_BREAK或其他东西。 最佳答案 一种可移植到大多数POSIX系统的方法是:raise(SIGTRAP);

error-handling - 检测不同类型网络错误的可移植方法

我想确定网络级别发生了什么样的错误。我发现的唯一方法是使用正则表达式检查错误消息,但现在我发现这些消息可以使用不同的语言(取决于操作系统配置),因此很难被正则表达式检测到。有没有更好的方法?packagemainimport("github.com/miekg/dns""net""regexp")funcmain(){varcdns.Clientm:=new(dns.Msg)m.SetQuestion("3com.br.",dns.TypeSOA)_,_,err:=c.Exchange(m,"ns1.3com.com.:53")checkErr(err)m.SetQuestion("e

programming-languages - 移植到 AVR 架构?

自从我听说了谷歌的新语言Go,我就想用它来进行微Controller编程。特别是AtmelAVR微Controller,如Atmega系列。这种架构有Go端口吗? 最佳答案 我可能回答的太晚了,但是Go,截至2012年8月,既有默认编译器(6g、8g)也有GCC编译器(它实际上也是官方的,但不是默认的),这意味着它支持GCC支持的所有架构;然而,正如Limbus所说,Go是针对多核计算机的。我个人认为使用C会得到更好的结果。如果你仍然想使用它,那很好,因为Go在单核应用程序中管理得很好(但不如C)。

go - Golang 二进制文件是可移植的吗?

假设我主要是Linux用户,但我正在用Go开发一个我想成为跨平台的应用程序。我已经四处搜索,但似乎找不到可以解决以下问题的信息:如果我在我的amd64Ubuntu系统上安装一个二进制文件,它是否也可以在其他人的64位Ubuntu/Debian系统上运行?如何使用goinstall构建一个x86_64二进制文件,该二进制文件也可以在32位Debianlikes上开箱即用地运行?如果我必须使用Windows来制作可以在Windows上运行的二进制文件,我如何才能确保即使我的Windows系统是64位,也可以为x86_64构建可执行文件?我的问题实际上归结为“go的链接器/编译器的静态/可移