草庐IT

c++ - 链接到 gcc 中的 boost 正则表达式

我正在尝试编译我在Linux上使用正则表达式的程序。我在库/正则表达式/构建通过打字制作-fgcc.mak它创建了一个包含以下四个文件的目录gccboost_regex-gcc-1_35boost_regex-gcc-d-1_35libboost_regex-gcc-1_35.alibboost_regex-gcc-d-1_35.a现在我想在我的程序中使用正则表达式,该程序位于某个任意目录中。我#includedboost/regex.hpp我收到错误消息,指出未找到regex.hpp。然后我在g++编译器中给出了-I选项。我没有得到那个错误。但是我得到以下错误undefinedref

c++ - 在 MFC 中使用静态库

我尝试在我的MFC项目中使用静态库,但出现以下链接器错误:1>------Buildstarted:Project:Csetkliens,Configuration:DebugWin32------1>Buildstarted2012.05.20.16:12:49.1>InitializeBuildStatus:1>Touching"Debug\Csetkliens.unsuccessfulbuild".1>ClCompile:1>Alloutputsareup-to-date.1>Alloutputsareup-to-date.1>ResourceCompile:1>Alloutpu

c++ - 过程入口点无法位于动态链接库 Core.dll 中

我正在将我的项目转换为使用DLL,并试图拆分我的Singleton类以避免使用模板。我的类LudoMemory,最初继承自Singleton。我现在正在尝试为其提供销毁和创建自身的功能,并让我的主引擎不依赖于Singleton。我写了一个像这样的简单销毁方法:LudoMemory*memory_Singleton=NULL;voidLudoMemory::Destroy(){LUDO_SAFE_DELETE(m_Singleton)}在运行程序时(没有编译器错误)我收到这个错误:Theprocedureentrypoint?Destroy@LudoMemory@@SAXXZcouldn

c++ - CMake 链接问题

我正在尝试使用CMake编译一个使用C库GStreamer的C++应用程序。我的main.cpp文件如下所示:extern"C"{#include#include}intmain(intargc,char*argv[]){GMainLoop*loop;GstElement*pipeline,*source,*demuxer,*decoder,*conv,*sink;GstBus*bus;/*Initialisation*/gst_init(&argc,&argv);return0;}这个有效:g++-Wall$(pkg-config--cflags--libsgstreamer-0.1

c++ - 使用 GCC 编译非必要的目标文件

考虑下面的例子g++a.ob.oc.o-oprog如果c.o没有为prog提供任何可执行代码,也没有任何对c.o的依赖其他文件,GCC是否会将c.o的内容包含在prog中?换句话说,除了编译时间之外,将不必要的文件编译成可执行文件会有什么(如果有的话)负面后果?提前致谢;干杯! 最佳答案 除了您的可执行文件可能过大之外,没有任何负面影响。链接器可能会为您删除未使用的代码,这会将事情缩减。您可以在输出可执行文件上使用某种对象查看工具(otool、objdump、nm等)来查看您的程序是否具有里面有额外的符号。我使用的是Mac,所以如果

c++ - 有没有办法在不重建任何项目的情况下重新链接解决方案?

我在VisualStudio2008中有一个大型C++解决方案,其中包含许多项目,这些项目链接到其他库。有时我想将解决方案链接到不同的库,为了这样做并创建一个新的exe文件,我需要重新链接解决方案。但是,只有至少有一个项目需要重建时才能重新链接。所以我手动更改代码中的一行并将其更改回来...有没有更好的方法只重做链接过程? 最佳答案 项目的上下文菜单中没有选项吗?仅项目->仅链接?抱歉,我刚刚从我的德国开发工作室2008翻译了它。 关于c++-有没有办法在不重建任何项目的情况下重新链接解

c++ - CMake 错误 : CMake can not determine linker language for target: myapp

我正在尝试通过cmake编译vMime,但出现上述错误,我正在使用cmake的图形界面,我的makefiles.txt在下面。它配置正确但不生成cmake_minimum_required(VERSION2.8)PROJECT(CXX)#vmimeenable_language(CXX)set(VerifyCXXVerifyCXX.cxx)add_definitions(-DVERIFY_CXX)set_target_properties(${TARGET}PROPERTIESLINKER_LANGUAGECxx)add_executable(myappvmime)install(TA

c++ - 为什么链接器不能防止 C++ 静态初始化顺序失败?

编辑:将下面的示例更改为实际演示SIOF的示例。我试图理解这个问题的所有微妙之处,因为在我看来它是语言中的一个主要漏洞。我读过链接器无法阻止它,但为什么会这样呢?在像这样的简单情况下防止似乎微不足道://A.hexternintx;//A.cpp#includeintx=rand();//B.cpp#include"A.h"#includeinty=x;intmain(){std::cout在这里,链接器应该能够轻松确定A.cpp的初始化代码应该在链接的可执行文件中发生在B.cpp之前,因为B.cpp依赖于A.cpp中定义的符号(链接器显然已经必须解决此引用)。那么为什么这不能推广到所

c++ - Qt 5.5 与 qmake : Linker cannot resolve OpenGL function calls

当使用Qt5.5、qmake和MSVC13编译带有一些基本OpenGL函数调用的基本样板Qt应用程序时,出现以下链接器错误:glwidget.obj:-1:error:LNK2019:unresolvedexternalsymbol__imp__glClear@4referencedinfunction"public:virtualvoid__thiscallGLWidget::initializeGL(void)"(?initializeGL@GLWidget@@UAEXXZ)glwidget.obj:-1:error:LNK2019:unresolvedexternalsymbol

c++ - 在 Visual Studio 中链接到版本中的库和调试中的 .exe 崩溃

我使用的是VisualC++2008SP1。我有一个在Debug模式下编译的应用程序,但在Release模式下链接到一个库。我在应用程序启动时遇到崩溃。为了使问题更小,我创建了一个包含2个项目的简单解决方案:lib_release(生成.lib,处于Release模式)exec_using_lib_release(在Debug模式下生成.exe)“lib_release”项目很简单,只需要一个简单的类://Foo.h#includeclassFoo{std::vectorv;public:voiddoSomething();};//Foo.cpp#include"Foo.h"voidF