标签: linker-errors

帮助链接器failer:.gnu.linkonce.t

我在使用gcc 3.2.3与binutils 2.18链接共享库时遇到问题.当我尝试链接库时,我收到以下错误:

在.rodata节中引用的.gnu.linkonce.t _...:在丢弃的部分.gnu.linkonce.t中定义...

我已经做了相当多的谷歌搜索,大多数地方似乎表明这是一个回归引入binutils 2.17后来修复在2.18.50,但我很好奇,如果有人知道是否有任何特定的解决方案的问题没有不得不接触binutils和gcc.

谢谢.

gcc linker-errors binutils

8
推荐指数
1
解决办法
4348
查看次数

对"crypt"的未定义引用

我正在使用下面的代码,我在网络的某个地方找到了,当我尝试构建它时,我收到了一个错误.编译还可以.

这是错误:

/tmp/ccCnp11F.o: In function `main':

crypt.c:(.text+0xf1): undefined reference to `crypt'

collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这是代码:

#include <stdio.h>
 #include <time.h>
 #include <unistd.h>
 #include <crypt.h>

 int main()
 {
   unsigned long seed[2];
   char salt[] = "$1$........";
   const char *const seedchars =
     "./0123456789ABCDEFGHIJKLMNOPQRST"
     "UVWXYZabcdefghijklmnopqrstuvwxyz";
   char *password;
   int i;

   /* Generate a (not very) random seed.
      You should do it better than this... */
   seed[0] = time(NULL);
   seed[1] = getpid() ^ (seed[0] >> 14 & 0x30000);

   /* Turn it into printable characters …
Run Code Online (Sandbox Code Playgroud)

c crypt cryptography linker-errors

8
推荐指数
1
解决办法
2万
查看次数

在C++共享对象文件中找到完整的函数定义

我有一个链接器错误,它表示对函数的未定义引用.我期望函数的共享库具有该函数名称(我通过nm -s检查)所以现在接下来要看的是函数参数是否正确.如何在共享对象文件中查看函数的参数类型和数量?

编辑:所以它的问题是:我试图通过链接共享的C对象来创建一个C++共享对象文件,但是在C++源代码中我没有在"extern"C""块中包含头文件,所以它无法找到那些符号,感谢所有回复此问题的人.这个问题现在解决了.

c++ linux compiler-errors shared-libraries linker-errors

8
推荐指数
2
解决办法
6916
查看次数

如何在Xcode 4.5"命令行工具"项目中设置工作逻辑单元测试目标?

无法为特定方案设置单元测试.这是我正在尝试的:

  • 在Xcode 4.5中,我创建了一个简单的OSX "命令行工具"应用程序项目(Foundation).
    请注意,Xcode 提供自动将单元测试添加到"命令行工具"项目的选项 - 所以请不要建议勾选方框.它不存在: - /

  • 在我的项目中,我创建了一个我想测试的简单示例类; 例如"形状".

  • 我跟着苹果的指示Xcode的单元测试指南用于在项目设置的单元测试:

    • 我在我的项目中添加了一个单元测试目标,并且

    • 我编辑了"测试"方案以在新目标中运行测试.

  • 在测试项目的实现(.m)文件中,我Shape.hsetUp()方法中添加了一个import 和code 来实例化一个形状并将其分配给一个实例变量.

那时,我决定看看是否会构建一些东西,以及默认测试是否仍会运行.但是,当我从菜单中选择Product ... Test时,构建失败并出现以下错误:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_Shape", referenced from:
      objc-class-ref in ExampleTests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

解释此错误不是问题.我知道单元测试目标没有链接到包含Shape实现的二进制文件.但是,我还没有(还)了解Xcode单元测试和目标配置.所以:

为了使测试目标链接到命令行工具的结果输出,我需要做什么?我可以链接到单元测试目标的命令行可执行文件吗?Apple的文档看起来特定于常规OSX应用程序(*.app)和iOS应用程序,而这两者都不是.

我有业务逻辑类,我想在命令行工具设置(开始)中开发,所以我想了解我需要做什么才能在"命令行工具"中运行单元测试目标"项目类型. 谢谢!

(PS请注意,我感兴趣,我的运行单元测试命令行-堆栈溢出已经建议对如何做到这一点"相似"的问题-而是运行单元测试一个"命令行工具"类型的项目,而且还来自Xcode内部.)

xcode unit-testing linker-errors command-line-tool xcode4.5

8
推荐指数
1
解决办法
3387
查看次数

危险的搬迁错误意味着什么?

我收到链接错误:

危险搬迁:l32r:使用后放置文字:

我还在尝试调试; 但是,我想更好地理解这个错误.我明白搬迁是什么; 但是,我不确定它是多么危险,并且正在寻找一些澄清.此外,可能会产生此类错误的小代码段会很有帮助.

简而言之,什么是" 危险的搬迁 "?

c++ linker build linker-errors linker-scripts

8
推荐指数
1
解决办法
3655
查看次数

如何修复"在丢弃的部分中定义"链接器错误?

我的程序编译好没有-flto但是使用-flto我得到这个错误:

% arm-none-eabi-g++ --version
arm-none-eabi-g++ (4.8.3-9+11) 4.8.3 20140820 (release)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

% arm-none-eabi-g++ -O2 -W -Wall -fPIE -flto -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -ffreestanding -nostdlib -std=gnu++11 -fno-exceptions -fno-rtti -c -o main.o main.cc

% arm-none-eabi-g++ -fPIE -nostdlib -O2 -flto boot.o memcpy.o font.o main.o -lgcc -Tlink-arm-eabi.ld -o kernel.elf
`memcpy' referenced in section `.text' of /tmp/ccYO5wE8.ltrans0.ltrans.o: …
Run Code Online (Sandbox Code Playgroud)

c++ g++ linker-errors

8
推荐指数
1
解决办法
3398
查看次数

Xcode 8错误:无法解析调试映射:没有这样的文件或目录

我只是在之前的工作版本7上安装了新的Xcode 8.我尝试构建一个现有的ObjC应用程序并获得了持久的链接器错误:

 error: cannot parse the debug map for "/Users/--- 
 Library/Developer/Xcode/DerivedData/Sunset3-
 dejxrzrmfgomxxcrzloplmsozads/Build/Products/Debug-
 iphonesimulator/Sunset3.app/Sunset3": No such file or directory
Run Code Online (Sandbox Code Playgroud)

搜索,以前的修复程序在这里不起作用:

1) Reboot after install
2) Xcode Clean Project
3) Turn off bitcode build options
4) for good measure, I tried targeting into 9.0, 9.3, 10.0 - no difference in outcome
5) Also tried three different simulator targets
Run Code Online (Sandbox Code Playgroud)

对日志的进一步评估显示了一个未被前一个IDE标记的dup对象:

duplicate symbol _sharedPlaceDate in:
/Users/irampil/Library/Developer/Xcode/DerivedData/Sunset3-dejxrzrmfgomxxcrzloplmsozads/Build/Intermediates/Sunset3.build/Debug-iphonesimulator/Sunset3.build/Objects-normal/x86_64/ViewController.o
/Users/irampil/Library/Developer/Xcode/DerivedData/Sunset3-dejxrzrmfgomxxcrzloplmsozads/Build/Intermediates/Sunset3.build/Debug-iphonesimulator/Sunset3.build/Objects-normal/x86_64/GraphClass.o
Run Code Online (Sandbox Code Playgroud)

ld:1个用于体系结构x86_64 clang的重复符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

在XCode8中创建的de novo ObjC项目编译和链接就好了.关于修复重复对象的其他想法?

linker-errors xcode8

8
推荐指数
1
解决办法
5483
查看次数

架构x86_64的1个重复符号

我不确定我做错了什么.
我将项目文件夹移动到另一个文件夹,并将备份文件夹复制到桌面.
我试图打开备份项目并构建,我收到了链接器错误.
所以我决定删除备份文件夹并将项目文件夹移回桌面.我不能再编译并收到以下错误.

 Showing Recent Issues clang: error: linker command failed with exit code 1 (use -v to see invocation)

duplicate symbol _main in:
/Users/BRO/Library/Developer/Xcode/DerivedData/SFITNESS-flzvwdymttxhducvwvmhpuaqfzhj/Build/Intermediates.noindex/SFITNESS.build/Debug-iphonesimulator/SFITNESS.build/Objects-normal/x86_64/main-90EC778DD760FD57.o
/Users/BRO/Library/Developer/Xcode/DerivedData/SFITNESS-flzvwdymttxhducvwvmhpuaqfzhj/Build/Intermediates.noindex/SFITNESS.build/Debug-iphonesimulator/SFITNESS.build/Objects-normal/x86_64/main-F627C2B37F247040.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)  
Run Code Online (Sandbox Code Playgroud)

需要帮助

没有派生数据文件夹

PIC

还是一样

1.我打开Derived Data文件夹并删除其中的所有内容
2.我删除了所有模拟器中的所有项目
3.我重新启动了xCode,Clean和build

还是一样 图2

将项目添加到GitHub中

链接

xcode objective-c linker-errors ios

8
推荐指数
2
解决办法
5614
查看次数

将VS2012 Windows 8 Metro解决方案转换为VS2013后的未解析符号(在Windows 8.1上)

我有一个问题,我目前无法有效解决,因为我还不熟悉Metro应用程序开发.所以请忍受我:)

长话短说,我有一个大型,复杂的VS2012 Metro应用程序托管+本机解决方案(目前在Windows 8上构建)到面向Windows 8.1的VS2013中.

我将解决方案导入VS2013(在Windows 8.1上托管),并为其运行转换以及其中的所有子项目.Stuff编译,但是我们遇到问题就是链接器.这是我们得到的链接器错误的一个例子:

    error LNK2019: unresolved external symbol __imp___beginthreadex referenced in function <blahblahblah>
    error LNK2019: unresolved external symbol __imp___mbsrchr referenced in function <blahblahblah>
    error LNK2019: unresolved external symbol _getenv referenced in function <blahblahblah>
    error LNK2019: unresolved external symbol __imp___beginthreadex referenced in function <blahblahblah>
    error LNK2019: unresolved external symbol __imp___endthreadex referenced in function <blahblahblah>
    error LNK2019: unresolved external symbol __imp___mbsrchr referenced in function <blahblahblah>
    error LNK2019: unresolved external symbol __imp___mbsnbicmp referenced in function <blahblahblah>
    error LNK2019: unresolved …
Run Code Online (Sandbox Code Playgroud)

linker-errors microsoft-metro visual-studio-2013 windows-8.1

7
推荐指数
1
解决办法
980
查看次数

未解析的外部符号与模板功能

我在网上搜索但我还没有找到答案,为什么我收到这个错误:

错误1错误LNK2019:未解析的外部符号"public:class Mesh*__thiscall AssetManager :: GetAsset(class std :: basic_string,class std :: allocator>)"(?? $ GetAsset @ PAVMesh @@@ AssetManager @@ QAEPAVMesh @@ V?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@ Z)在函数"public:void __thiscall SceneManager :: AddMesh(class std :: basic_string, class std :: allocator>)"(?AddMesh @ SceneManager @@ QAEXV?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@@ Z)C:\ Users\Dirk\documents\visual studio 2010\Projects\OpenGameEngine\OpenGameEngine\SceneManager.obj

这是我的代码:

AssetManager.h …

c++ templates external function linker-errors

7
推荐指数
1
解决办法
9394
查看次数