linker相关内容
我在Windows 7上有Microsoft Visual Studio 2013社区版。 我要以比下载标题和二进制文件或自己编译更新的方式安装gtest和gmock。 我找到工具> Nuget包管理器>管理Nugets包解决方案 我选择了在线,然后键入gtest。从搜索结果我发现了Google测试,所以我已经为我的当前项目安装了它。 安装后,下面的代码编译: #include
..
我试图google这个,但总是回来有不同的问题。当我尝试编译这个程序时,我得到3个未解决的外部: 1> main.obj:error LNK2019:unresolved external symbol “public:__thiscall DynintStack ::〜DynIntStack(void)”(?? 1?$ DynIntStack @ D @@ Q
..
我有一个文件 foo.h ,它有各种函数声明。所有这些函数都在一个文件 foo.dll 中实现。但是,当我包括.h文件,并尝试使用任何函数,我得到的错误: bar.obj :error LNK2019:未解析的外部符号SomeFunction 这样显然没有找到函数实现。 p> 我需要做些什么来帮助编译器找到DLL中的定义并将它们与.h文件关联? 我看
..
我将我的项目转换为使用DLL,并试图拆分我的 Singleton 类,以避免使用模板。 我的类, LudoMemory ,最初继承自 Singleton 。我试图给它的功能,现在销毁和创建自己,让我的主机不依赖 Singleton 。 我写了一个简单的destroy方法,例如: LudoMemory * memory_Singleton = NULL; void Lud
..
我们的下一个产品已经变得太大,无法在运行32位Windows的机器上链接。所有lib文件的总和超过2Gb,并且只能在64位Windows机器上链接。最终,我们将超过这个边界,因为我们的软件往往是增长而不是合同,我们使用一个32位链接器(MS Visual Studio 2005):当我们的库大小超过3Gb时,我们预期会遇到麻烦。 如何减少.lib文件或.obj文件的大小,而无需修剪代码?例如
..
我喜欢GNU链接器功能来包装函数很多。我通常使用它模拟例如非确定性函数调用像rand()。考虑下面的例子,我想为giveMeANumber写一个单元测试: // number.cpp int giveMeANumber(){ return rand()%6 + 1; } 我可以使用GNU链接器功能包装调用rand,如下: // test.cpp ext
..
我必须承认这是我第一次实现着色器,以前我只使用固定功能管道; glLinkProgram(程序) - 当查询GL_LINK_STATUS时返回GL_FALSE。此外,信息日志为空(当我查询日志长度 - 它是1,这是每个文档的空终止符,它检出)。所以链接器错误,没有日志。此外,我刚刚发现,一旦我在顶点着色器中使用gl_Position变量,在分配期间和如果我使用它用于计算,链接器问题发生。我尝
..
我正在将一些共享对象文件编译成 archive.a : $ g ++ -c -Iinclude / -fPIC -O0 -o object1.o source1.cpp $ g ++ -c -Iinclude / -fPIC -O0 -o object2.o source2.cpp $ ar rvs archive.a object1.o object2.o r - obje
..
我有一个跨平台C ++应用程序,它分成几个共享库,并从插件共享库中加载额外的功能。插件库应该是自包含和自己的功能,不知道或依赖于调用应用程序。 其中一个插件包含来自主应用程序的复制代码,因此包含与引擎中的符号名称重复的符号名称。 (是的,我知道这通常是一个没有,但在插件编写时,引擎是一个单片的二进制文件,不能共享库。)在Windows上,一切运行正常。在Linux上,我们得到了segfaul
..
从我的理解,这个错误是由于没有正确使用头守卫,当你有多个文件,包括同一个文件。在我的情况下,这是导致错误的包含树: 文件A包含Z,其中包含我需要的功能。文件B包括A,文件C包括A. 没有任何 #pragma once blahblah.obj:error LNK2005:class some: :namespace :: ObjectType对象已经 在dialogDlg.ob
..
我正在开发一个需要两个第三方库( libfoo.so 和 libbar.so )的C ++项目。我的操作系统是Linux。 libfoo.so 动态链接到libpng14.so.14(1.4.8) 1) libbar.so 似乎静态链接到 libpng的unknwon版本 libpng 1.2.8 (EDIT 1) 我说“似乎是”因为: ldd libbar.so 不会显示
..
我有一些旧的C代码,我想与一些C ++代码结合。 C代码以前有以下包括: #include #include #include #include“mysql.h” 现在我想让它使用C ++用iostream这样: #include #include
..
假设头文件定义了一个函数模板。现在假设两个实现文件 #include 这个头,并且每个都有一个函数模板的调用。在这两个实现文件中,函数模板使用相同的类型实例化。 // header.hh template void f(const T& o) { // ... } // impl1.cc #include “header.hh” void fim
..
我想在Visual Studio中使用用mingw编译的库。但是,我得到以下链接器错误: 错误LNK2001:未解析的外部符号__imp ___ iob 错误LNK2019:在函数中引用的未解析的外部符号__imp___pctype $ p $ b 错误LNK2019:函数中引用的未解析的外部符号__imp____mb_cur_max 错误LNK2001:无法解析的外部符号_
..
我写了一个findDialog,它找到搜索的文本。当我给予 make 命令时,它返回 g ++ -Wl, O1 -o findDialog FindDialog.o main.o moc_FindDialog.o -L / usr / lib -lQtGui -lQtCore -lpthread moc_FindDialog.o:在函数`FindDialog :: findClicke
..
我正在使用一些静态库建立我的程序(测试)。 这个库包含一个文件,其中有我的功能: string& GetString(){ static string strFilename; return strFilename; } void PrintToScreen(){ printf(“String:%s\\\ ”,GetString()。c_str()) }
..
我在做一个练习(从C ++的思维的第三章),但是我有一个问题链接两个.cpp文件。 这是练习: 创建头文件(扩展名为'.h')。在此文件中, 通过更改参数列表 声明一组函数,并返回以下值之一:void,char, int和float。现在创建一个包含 头文件的.cpp文件并为所有这些 函数创建定义。每个定义应该只打印出 函数名,参数列表和返回类型,所以你 知道它被调用。创
..
我试图使用CMake编译一个使用C库GStreamer的C ++应用程序。 我的main.cpp文件看起来像这样: extern“C”{ #include } int main(int argc,char * argv []) { GMainLoop * loop; GstElement
..
有什么办法,以优化链接时间在MS Visual studio C ++(2005)?我们使用Xoreax Incredibuild编译加速,但没有链接。 目前每个链接大约需要30秒。当我打开增量链接,需要35-40秒。 (无论我是否编译项目有或没有incredibuild) 有什么办法,如何剖析连接器,看看需要多长时间?或任何工具的paralel链接? 感谢您的回复 Ludek
..
我想替换全局运算符new()和 operator delete()它们的变体),以便做一些内存管理技巧。我想让我的应用程序中的所有代码使用自定义运算符(包括我自己的DLL中的代码以及第三方DLL)。我已经读取的东西,链接器将选择链接时看到的第一个定义(例如,如果包含您的自定义运算符new()的库先链接,它将“击败”与CRT的链接)。有什么办法保证这会发生吗?这是什么规则,因为这真的是一个乘法定义的
..