标签: duplicate-symbol

使用Clang在C中复制符号

我目前正在研究我的第一个"严肃"的C项目,一个16位的虚拟机.当我将文件从一个大的源文件拆分成多个源文件时,链接器(无论是通过clang,gcc,cc还是ld调用)都会发出错误:

ld: duplicate symbol _registers in register.o and main.o for inferred 
    architecture x86_64
Run Code Online (Sandbox Code Playgroud)

registers主文件中没有任何声明.uint16_t如果有帮助,它是一个数组.我使用内置编译器(不是GNU gcc)在Mac OS 10.7.3上.有帮助吗?

c duplicate-symbol

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

C标题重复符号问题

这是我第一次处理一个比简单的write-single-source-file-and-compile例程稍微复杂一点的CUDA项目.正如所料,我面临着C标题的一些问题,即重复的符号.

根据链接器,在多个.cu文件中包含以下头文件会产生冲突:

env_vars.h

#ifndef ENV_VARS_H_
#define ENV_VARS_H_

/*** GLOBAL VARIABLES ***/
unsigned int h_n_osc;
__device__ unsigned int d_n_osc;

/*** CONSTANTS ***/
const double OMEGA_0 = 6.447421494058077e+09;

/* other constants defined in the middle */

#endif
Run Code Online (Sandbox Code Playgroud)

multigpu.cu

#include "env_vars.h"
/* assigns h_n_osc */
Run Code Online (Sandbox Code Playgroud)

adm_matrix.cu

#include "env_vars.h"
/* uses h_n_osc */
Run Code Online (Sandbox Code Playgroud)

在Nsight Eclipse Edition中构建项目会导致链接器抱怨h_n_osc变量被定义两次:

duplicate symbol _h_n_osc in:
    ./adm_matrix.o
    ./multigpu.o
ld: 1 duplicate symbol for architecture x86_64
Run Code Online (Sandbox Code Playgroud)

通过互联网搜索,我意识到将h_n_osc变量的声明移动到multigpu.cu并将其重新声明为extern变量adm_matrix.cu(以及我以后可能需要它的任何地方)解决了问题,事实上它确实存在. …

c c++ cuda header-files duplicate-symbol

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

GoogleMobileVision GoogleSignIn使用Cocoapods复制符号?

我正在使用CocoaPods添加两个框架.

target 'TestGoogleLib' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for TestGoogleLib
    pod 'GoogleMobileVision'
    pod 'GoogleSignIn'


end
Run Code Online (Sandbox Code Playgroud)

但是当我跑 - 我得到重复的错误.似乎两个框架都使用相同的文件.

我的Pod版本是1.5.3

duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._localAuthenticationInfo in:


ld: 13 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

如何使用CocoaPods安装两个没有冲突---我删除了所有冲突日志 - 如果需要,我可以添加它们.

duplicate-symbol cocoapods google-signin google-ios-vision

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

为什么我的代码没有引发重复的符号冲突

为什么我的以下代码没有引发重复的符号冲突?

我提到了名称重整,但这似乎仅在参数存在差异时出现。但是,这里的参数没有差异。但是,它仍然不会引发冲突。为什么?

#include <stdio.h>

void printGood() {
    printf("I am good");
}
Run Code Online (Sandbox Code Playgroud)

完美的

#include <stdio.h>

void printGood() {
    printf("I am perfect");
}
Run Code Online (Sandbox Code Playgroud)

交流电

extern void printGood();

void bringGood() {
    printGood();
}
Run Code Online (Sandbox Code Playgroud)

公元前

extern void printGood();

void bringPerfect() {
    printGood();
}
Run Code Online (Sandbox Code Playgroud)

编排器

#include <stdio.h>

void bringGood();
void bringPerfect();

int main() {
    printf("bringing good");
    bringGood();
    printf("bringing perfect");
    bringPerfect();
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

编译行:

gcc -g -c good.c
gcc -g -c perfect.c

gcc -g -c A.c
gcc -g -c B.c

gcc -g -c orchestrator.c …
Run Code Online (Sandbox Code Playgroud)

c linker duplicate-symbol

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

为什么这不是重复的符号错误?

我有一个iOS的框架,包含.c,.mm源文件.为方便起见,我们姑且称之为这两个文件A.cB.mm.

在这两个文件中,我定义了一个具有相同功能协议的函数,如下所示.

// A.c

uint32_t get_file(const char *path)
{
    ...
}

// B.mm

uint32_t get_file(const char *path)
{
    ...
}

Run Code Online (Sandbox Code Playgroud)

据我所知,我认为这会在编译时抛出错误,因为有重复的符号,但它成功编译框架没有任何错误.我在这里错过了什么?

注意:duplicate symbol如果它是一个链接器错误,.c并且.m因为Objective-C没有经过名称修改.

c xcode compiler-errors duplicate-symbol

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

xCode:Objective C:重复的符号错误

在文件CarArray(没有任何扩展名)中我有这样的数组(这是一个非常简化的版本):

NSString *cars[5][3] = {
    {@"1A", @"1B", @"1C"},
    {@"2A", @"2B", @"2C"},
    {@"3A", @"3B", @"3C"},
    {@"4A", @"4B", @"4C"},
    {@"5A", @"5B", @"5C"}
}
Run Code Online (Sandbox Code Playgroud)

现在我想从多个文件中读取数组中的数据,所以我只是使用 #import "CarArray"

我用一个循环来读取数据.然后我得到这样一个错误:

duplicate symbol _cars in:
/Users/Adam/Library/Developer/Xcode/DerivedData/Auto_Center-hgjlsqanvyynncgyfzuorxwchqov/Build/Intermediates/Auto Center.build/Debug-iphonesimulator/Auto Center.build/Objects-normal/i386/DetailViewController.o
/Users/Adam/Library/Developer/Xcode/DerivedData/Auto_Center-hgjlsqanvyynncgyfzuorxwchqov/Build/Intermediates/Auto Center.build/Debug-iphonesimulator/Auto Center.build/Objects-normal/i386/ModelListViewController.o
ld: 1 duplicate symbol for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

xcode objective-c duplicate-symbol ios

0
推荐指数
1
解决办法
567
查看次数