我在使用gcc 3.2.3与binutils 2.18链接共享库时遇到问题.当我尝试链接库时,我收到以下错误:
在.rodata节中引用的.gnu.linkonce.t _...:在丢弃的部分.gnu.linkonce.t中定义...
我已经做了相当多的谷歌搜索,大多数地方似乎表明这是一个回归引入binutils 2.17后来修复在2.18.50,但我很好奇,如果有人知道是否有任何特定的解决方案的问题没有不得不接触binutils和gcc.
谢谢.
我正在使用下面的代码,我在网络的某个地方找到了,当我尝试构建它时,我收到了一个错误.编译还可以.
这是错误:
/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) 我有一个链接器错误,它表示对函数的未定义引用.我期望函数的共享库具有该函数名称(我通过nm -s检查)所以现在接下来要看的是函数参数是否正确.如何在共享对象文件中查看函数的参数类型和数量?
编辑:所以它的问题是:我试图通过链接共享的C对象来创建一个C++共享对象文件,但是在C++源代码中我没有在"extern"C""块中包含头文件,所以它无法找到那些符号,感谢所有回复此问题的人.这个问题现在解决了.
无法为特定方案设置单元测试.这是我正在尝试的:
在Xcode 4.5中,我创建了一个简单的OSX "命令行工具"应用程序项目(Foundation).
请注意,Xcode 不提供自动将单元测试添加到"命令行工具"项目的选项 - 所以请不要建议勾选方框.它不存在: - /
在我的项目中,我创建了一个我想测试的简单示例类; 例如"形状".
我跟着苹果的指示Xcode的单元测试指南用于在项目设置的单元测试:
我在我的项目中添加了一个单元测试目标,并且
我编辑了"测试"方案以在新目标中运行测试.
在测试项目的实现(.m)文件中,我Shape.h在setUp()方法中添加了一个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内部.)
我收到链接错误:
危险搬迁:l32r:使用后放置文字:
我还在尝试调试; 但是,我想更好地理解这个错误.我明白搬迁是什么; 但是,我不确定它是多么危险,并且正在寻找一些澄清.此外,可能会产生此类错误的小代码段会很有帮助.
简而言之,什么是" 危险的搬迁 "?
我的程序编译好没有-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) 我只是在之前的工作版本7上安装了新的Xcode 8.我尝试构建一个现有的ObjC应用程序并获得了持久的链接器错误:
Run Code Online (Sandbox Code Playgroud)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
对日志的进一步评估显示了一个未被前一个IDE标记的dup对象:
Run Code Online (Sandbox Code Playgroud)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.old:1个用于体系结构x86_64 clang的重复符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)
在XCode8中创建的de novo ObjC项目编译和链接就好了.关于修复重复对象的其他想法?
我不确定我做错了什么.
我将项目文件夹移动到另一个文件夹,并将备份文件夹复制到桌面.
我试图打开备份项目并构建,我收到了链接器错误.
所以我决定删除备份文件夹并将项目文件夹移回桌面.我不能再编译并收到以下错误.
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)
1.我打开Derived Data文件夹并删除其中的所有内容
2.我删除了所有模拟器中的所有项目
3.我重新启动了xCode,Clean和build
该链接
我有一个问题,我目前无法有效解决,因为我还不熟悉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
我在网上搜索但我还没有找到答案,为什么我收到这个错误:
错误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 …
linker-errors ×10
c++ ×4
xcode ×2
binutils ×1
build ×1
c ×1
crypt ×1
cryptography ×1
external ×1
function ×1
g++ ×1
gcc ×1
ios ×1
linker ×1
linux ×1
objective-c ×1
templates ×1
unit-testing ×1
windows-8.1 ×1
xcode4.5 ×1
xcode8 ×1