Tag: linker errors

我在C程序中返回1退出状态错误

我正在尝试制作一个游戏,你需要找到1 100之间的密码,如果你找不到它,程序会告诉你它是大还是小。 这是代码: #include #include #include int main ( int argc, char** argv ) { int nombreMystere = 0, nombreEntre = 0; const int MAX = 100, MIN = 1; srand(time(NULL)); nombreMystere = (rand() % (MAX – MIN + 1)) + MIN; do { printf(“Quel est le nombre ? “); scanf(“%d”, &nombreEntre); // On compare […]

MpLab链接错误:无法分配部分(C30编译器)

我已将这两段代码放在一起(最初在此问题中描述)。 我现在刚从MpLab(Microchip MPLAB C30)遇到此错误 Link Error: Could not allocate section .nbss, size = 20004 bytes, attributes = bss near 最奇怪的是,我在编译器手册(Microchip出版物DS51284F)中找到了该消息,甚至是该消息的子字符串,但没有发现任何消息。 我甚至寻找单词allocate ,发现它只有三到四次,从来没有出现过错误信息。 在将这两段代码放在一起之前,我有一个定义为0x8000的段,我用于内存的“大块”,我们将使用它来将数据从Thing-X移动到Thing-Y 我把我在0x8000定义的数据区缩小到1个单独的字节,我仍然收到这个错误。 我没有在Microchip的编译器手册DS51284F中看到此消息。 有没有人曾经解决过这个问题? 链接器有不同的手册吗? 有没有办法让我可以得到一张记忆图来查看我的记忆区域在哪里?

什么是未定义的引用/未解析的外部符号错误,如何解决?

什么是未定义的引用/未解析的外部符号错误? 什么是常见原因以及如何修复/预防它们? 随意编辑/添加自己的。

代码保护失败

拿这个文件: 啊 #ifndef A_H #define A_H char EL[] = “el”; #endif a.cpp #include “ah” BH #ifndef B_H #define B_H #include “ah” #endif b.cpp #include “bh” main.cpp中 #include “bh” #include “ah” int main() { } 这只是一个例子,但我真的有这个问题: g++ -c a.cpp g++ -c b.cpp g++ -c main.cpp g++ -o main main.o ao bo ao:(.data+0x0): multiple definition of `EL’ […]

如何将我的C代码链接到PCRE库? (目前正在抛出链接器错误。)

问题 注意:我最初在一个更大的项目中遇到了这个问题; 所以我把代码减少到你看到的测试用例。 我无法弄清楚如何编译以下测试代码。 具体来说,似乎链接器无法找到PCRE库(请参阅下面的PCRE配置方式)。 尽管显式-L/usr/local/lib -lpcre被传递给链接器(PCRE安装在/usr/local目录结构中)。 我究竟做错了什么? 🙁 控制台输出是: $ make rm -f ./*.o gcc -ansi -Wall -pedantic-errors -I/usr/local/include -g0 -O3 -static -static-libgcc -march=i686 -malign-double -m128bit-long-double -c main.c -o main.o gcc -ansi -Wall -pedantic-errors -L/usr/local/lib -lpcre -g0 -O3 -static -static-libgcc -march=i686 -malign-double -m128bit-long-double main.o -o pcre_test_1_i686 main.o:main.c:(.text+0x100): undefined reference to `pcre_compile2′ main.o:main.c:(.text+0x12e): undefined reference […]

为什么我的C程序中的ws2_32.dll会出现链接器错误?

我在Visual Studio 2010中编写程序。我无法将名为ws2_32.dll的文件与我的项目链接。 谁能告诉我怎么做到这一点?

使用头文件时未定义的符号错误

我收到了以下错误,并且不能为我的生活弄清楚我做错了什么。 $ gcc main.c -o main Undefined symbols: “_wtf”, referenced from: _main in ccu2Qr2V.o ld: symbol(s) not found collect2: ld returned 1 exit status main.c中: #include #include “wtf.h” main(){ wtf(); } wtf.h: void wtf(); wtf.c: void wtf(){ printf(“I never see the light of day.”); } 现在,如果我将整个函数包含在头文件中而不仅仅是签名中,那么它就符合要求,因此我知道wtf.h被包含在内。 为什么编译器看不到wtf.c? 或者我错过了什么? 问候。

链接OpenSSL时对t1sl_steup_key_block的未定义引用

我遇到了将OpenSSL库链接到现有项目的问题。 我在哪里弄错了? 以下是我遵循的步骤。 我已下载SSL库,已配置并安装它。 它安装在/usr/local/ssl 。 2)我已经将/usr/local/ssl/lib libcrypto.a和libssl.a复制到我的项目中,比如/mnt/linux/bla/bla/lib 。 3)然后我编辑make文件并在那里添加了libssl libcrpto的路径。 添加的路径是项目中的一个,如/mnt/linux/bla /bla 3)制作 4)通过光滑编辑构建项目 当它构建时,我得到一个很长的错误链,就像 ../lib/libssl.a(t1_enc.o) :In function ‘t1sl_steup_key_block: undefined ref 现在,我想将.a文件复制到项目中可能会有问题。 有没有替代方案,或者我应该使用ln -s将.a文件/usr/local/openssl/lib到我的项目库文件夹中? 以下是错误。 Debug/FC5/m2pa.o -ldl -lpthread -ltdapi ../septel/gctlib.lib ../lib/libpq.a ../asn1/lib/libasn1per.a ../mysql/lib/libmysqlclient.a -L../lib ../asn1/lib/libasn1rt.a -lm -lcrypt -lcrypto -lssl -rdynamic ../lib/libssl.a(ssl_lib.o): In function `SSL_set_quiet_shutdown’:ssl_lib.c:(.text+0x670): multiple definition of `SSL_set_quiet_shutdown’ ../mysql/lib/libmysqlclient.a(ssl.o):ssl.cpp:(.text+0x125c): first defined here /usr/bin/ld: Warning: […]

链接静态库时内联函数的多个定义

我有一个C ++程序,我用mingw编译(gcc for Windows)。 使用包含gcc 4.4.1的mingw的TDM版本。 可执行文件链接到两个静态库(.a)文件:它们是用C语言编写的第三方库; 另一个是由我编写的C ++库,它使用C库提供我自己的C ++ API。 在我看来,过多的C库function部分是在内联函数中实现的。 当你使用C库的API时,你无法避免包含内联函数,但当我尝试将它们全部链接在一起时,我收到链接错误,说明所有内联函数都有多个定义 – 我都有在我的C ++包装器库中调用,而我没有调用它,基本上在头文件中内联定义的任何东西都有一个在C库和C ++库中为它创建的函数。 当包含文件在同一项目中的不同.c或.cpp文件中多次使用时,它不会导致多个定义错误; 问题只是它为每个库生成一个定义。 编译器如何/为什么在两个库中为这些内联函数生成函数和符号? 如何强制它停止在我的代码中生成它们? 是否有一个工具可以运行以从.a文件中删除重复的函数,或者是一种使链接器忽略多个定义的方法? (仅供参考,第三方库在其所有标题中都包含#ifdef __cplusplus和extern“C”保护;无论如何,如果这是问题,它不会导致符号的多重定义,它会导致相反的问题,因为符号会不确定或至少不同。) 值得注意的是,如果我链接到第三方C库的DLL,则不会发生链接错误; 然而,我得到奇怪的运行时故障,似乎与我的代码有关,它应该从DLL调用自己的函数版本。 (好像编译器正在创建我没有要求的本地版本的函数。) 之前已经问过这个问题的类似版本,但是,我没有找到任何这些问题的答案: 这个问题的答案是海报是多个定义变量 ,我的问题是内联函数的多重定义 : 重复的多重定义错误在多个cpps中包含相同的标题 这是一个MSVC计划,但我正在使用mingw; 另外,这个问题中海报的问题是在标题中类主体之外的C ++类构造函数的定义,而我的问题是内联的C函数: 静态Lib多重定义问题 这个傻瓜将他的所有C代码重命名为C ++文件,而他的C代码不是C ++ – 安全: 链接时许多std :: functions的多个定义 这个只是想知道为什么违反一个定义规则不是错误: 具有不同定义的内联函数的不可预测的行为