草庐IT

libc_start_main

全部标签

c++ - OSX 10.8 上 -stdlib=libc++ 的无效部署目标

我正在通过node-gyp编译一个用C++编写的Node.JS包。当我编译它时,我收到以下错误:clang:error:invaliddeploymenttargetfor-stdlib=libc++(requiresOSX10.7orlater)。我在OSX10.8上运行,并且安装了XCode命令行工具。这是node-gyp用来编译包的文件:{"targets":[{"target_name":"package_name",'type':'executable','xcode_settings':{'OTHER_CFLAGS':["-std=c++11","-stdlib=libc+

无法在 main 中访问在函数中初始化的 C++ 数组

我有一个用于在C++中初始化数组的函数。初始化后,main无法访问数组中的数据。不知道为什么。有帮助吗?voidtestArray(int*listPtr){listPtr=newint[2];listPtr[0]=0;listPtr[1]=1;}//endtestArrayvoidmain(){int*list;testArray(list);cout 最佳答案 这是因为指针是按值传递的。函数的参数被复制,函数的第一行用新表达式的结果替换指针的本地拷贝。返回main()的指针的原始拷贝不受此影响。您可以通过引用传递指针来“修复”此

c++ - 错误 LNK2019 未解析的外部符号 _WinMain@16 在函数 "int __cdecl invoke_main(void)"(?invoke_main@@YAHXZ) 中引用

这是我的剧本我不知道如何解决这个错误请帮我非常感谢floatangle=15;floatx,y,z;//forpolygonrotatevoiddisplay(){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//clearscreenanddepthbufferglLoadIdentity();glPushMatrix();glColor3f(1.0,0.0,0.0);glBegin(GL_POLYGON);glVertex2f(160.0,360.0);glVertex2f(300.0,360.0);glVertex2f(160.

c++ - C++中 "main"线程的id

在C++中有没有办法获取“主”程序线程的ID?我看到std::this_thread::get_id()获取当前正在执行的线程的ID,但我需要main的ID,即原始程序线程。我没有看到任何功能来获取它。原因是我有一些非线程安全的内部函数,它们只能在应用程序的原始线程上调用,所以为了安全我想这样做:-assert(std::this_thread::get_id()==std::main_thread::get_id());但是当然没有执行此操作的功能,而且我看不到任何获取该信息的方法。 最佳答案 您可以在this_thread仍然是

c++ - 如何检查是否安装了libc++?

我正在从源代码构建一些东西。我系统的gcc和stdlibc++太旧了,但是我可以使用clangbuild。默认情况下,clang使用stdlibc++,但可以选择安装libc++以供clang使用。检查libc++是否使用clang安装的最佳方法是什么? 最佳答案 比@n.n更好的答案:printf"#include\nintmain(){}"|clang-E-stdlib=libc++-xc++-dM-|grep_LIBCPP_VERSION如果打印类似:#define_LIBCPP_VERSION3700,那么你就有了libc+

c++ - 在 main() 消失之前初始化的值

无法理解奇怪的程序行为-希望有人能解释一下。虚拟.h:#ifndefDUMMY_H#defineDUMMY_H#includeclassDummy{intval;public:intInit(intnew_val){returnval=new_val;}intGet(){returnval;}Dummy():val(-1){std::cout标题.h:#include"dummy.h"externDummydummy;虚拟.cpp:#include"dummy.h"Dummydummy;主要.cpp:#include#include"header.h"intres1=dummy.Ini

c++ - VS2012 错误 : The application was unable to start correctly (0xc000007b)

在尝试运行我在VisualStudio2012中构建的C++SFML32位程序的exe文件后,我收到错误“应用程序无法正确启动(0xc000007b)”。我在我的项目中静态链接了SFMLdll,但将以下dll与我的程序结合在一起:libsndfile-1.dllopenal32.dllmsvcp110.dllmsvcp110d.dllmsvcr110.dllmsvcr110d.dll问题是什么? 最佳答案 您遇到的实际错误代码是0xC000007B。那就是NTSTATUS错误代码STATUS_INVALID_IMAGE_FORMAT

c++ - 可以单独编译任何 .c 文件(也就是说,没有 main?)

我目前有一个“类库”.c文件(如下所示)。我对此有2个问题:如果我想看看它自己是否编译良好,我该怎么做?如果我尝试对它进行gcc,它总是会给出“nomain”错误,这是有道理的,但会引发一个问题,即知道给定的.c文件是否可以“隔离”编译。我是否可以安全地得出结论,如果编译器引发的唯一错误是“nomain”错误,那么我的文件没有问题?在这里单独编译.c文件的一个例子是确定哪些包含过多。在这样一个简单的文件中是否有必要用它的方法/结构声明定义一个header,然后在这样一个很小的​​.c文件中包含代码实现?#ifndefSEMAFOROS#defineSEMAFOROS#include#i

c++ - CRT 如何调用 main ,具有不同的参数

我们可以用多种方式编写主函数,intmain()intmain(intargc,char*argv[])intmain(intargc,char*argv[],char*environment)运行时CRT函数如何知道应该调用哪个main。请注意,我不是在询问是否支持Unicode。 最佳答案 接受的答案不正确,CRT中没有特殊代码来识别main()声明的类型。它的工作是因为cdecl调用约定。它指定参数从右到左压入堆栈,调用者在调用后清理堆栈。因此CRT只是将所有参数传递给main()并在main()返回时再次弹出它们。您唯一需要

c++ - 在 C 和 C++ 中没有定义的函数 main

为什么这段代码在C中编译成功,而在C++中却报错?intmain;它在托管环境中是否符合标准?你能引用标准吗?我已经用gcc测试过了。 最佳答案 WhythiscodecompilesuccessfulinCandwillgiveyouanerrorinC++?由于C++名称修改。基本上,在所有实际实现中,链接器寻找名为main的symbol(或其变体,我在Apple平台上看到过_main)-在C中,它可以是main()函数或名为的外部存储变量main-关键是通常C实现(编译器、工具链)在链接器级别不区分变量和函数,这就是为什么提供