标签: linker-errors

MinGW链接问题

我与MinGW存在链接问题.这些是电话:

g++ -enable-stdcall-fixup -Wl,-enable-auto-import
    -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows
    -o debug/Simulation.exe debug/LTNetSender.o debug/main.o debug/simulation.o
    debug/moc_simulation.o  -L'c:/Programmieren/Qt/4.5.2/lib' -lmingw32
    -lqtmaind -LC:\Programmieren\Qt\boost_1_39_0\distrib\lib
    -LC:\Programmieren\MinGW\lib -llibboost_system-mgw34-mt -llibws2_32
    -lQtSqld4 -lQtGuid4 -lQtNetworkd4 -lQtCored4

C:\Programmieren\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\
    ld.exe: cannot find -llibws2_32
Run Code Online (Sandbox Code Playgroud)

MinGW库目录包含在库路径中,libws2_32.a位于此目录中.为什么链接器找不到库?

c++ mingw linker-errors

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

没有找到i386架构的Facebook符号

尝试在xcode 4中编译项目时出现以下错误(在xcode 3.x中正常工作)

    Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_FBSession", referenced from:
      objc-class-ref in View1Controls.o
  "_OBJC_CLASS_$_FBLoginDialog", referenced from:
      objc-class-ref in View1Controls.o
  "_OBJC_CLASS_$_FBRequest", referenced from:
      objc-class-ref in View1Controls.o
  "_OBJC_CLASS_$_FBStreamDialog", referenced from:
      objc-class-ref in View1Controls.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释什么是错的?我确定我已经正确导入了头文件..

谢谢,

插口

iphone facebook objective-c linker-errors ios

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

未定义的Base :: object链接器错误引用@ c ++ w/freeglut

我有这个代码

/////////////////////////////////////Gnome.cpp文件

 #include "Living.h"

class Gnome:public Living{
private:

public:
Gnome();
void drawObjects();
};


Gnome::Gnome()
{
spriteImg = new Sprite("graphics/gnome.bmp"); //<-------------this is where it says there is the error

loaded = true;
}
Run Code Online (Sandbox Code Playgroud)

///////////////////////////////////Living.h file

#include <iostream>

 #include "Sprite.h"


using namespace std;

class Sprite;

class Living{

protected:
int x,y;
static Sprite *spriteImg; //= NULL;
bool loaded;


void reset();


public:

Living();
~Living();
int getX();
void setX(int _x);
int getY();
void setY(int _y);
void virtual drawObjects() =0;


};
Run Code Online (Sandbox Code Playgroud)

// living.cpp

#include "Living.h"


Living::Living() …
Run Code Online (Sandbox Code Playgroud)

c++ opengl linker-errors freeglut

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

2019链接错误 - c ++

我在VS2010中编写了以下代码片段:

#pragma once
#include "stdafx.h"
#ifndef SECURITY_WIN32
#define SECURITY_WIN32
#endif
#include "windows.h"
#include "sspi.h"

int main( void )
{
    ULONG cPackages = 0;
    PSecPkgInfo pInfo = NULL;
    SECURITY_STATUS stat = EnumerateSecurityPackages(&cPackages, &pInfo);
    if (stat == SEC_E_OK) 
    { 
        for (ULONG i = 0; i < cPackages; i++) 
        { 
            wprintf(L"%s\t%s\n",pInfo[i].Name, pInfo[i].Comment); 
        } 
        FreeContextBuffer(pInfo); 
    } 
    return 0; 

}
Run Code Online (Sandbox Code Playgroud)

但是,在编译时我遇到以下错误:

错误LNK2019:函数_main中引用的未解析的外部符号_ imp _EnumerateSecurityPackagesW @ 8

错误LNK2019:函数_main中引用了未解析的外部符号_FreeContextBuffer @ 4

谁能帮帮我吗?

c++ linker-errors visual-studio-2010

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

这15个苹果连接器错误意味着什么

这里有很多错误......

还有这个:

Ld /Users/davidraijmakers/Library/Developer/Xcode/DerivedData/Scanner-bbwbbvayxxnrhwdsgbkvibplofyw/Build/Products/Debug-iphoneos/Scanner.app/Scanner normal armv7
    cd /Users/davidraijmakers/Documents/xcodezooi/Scanner
    setenv IPHONEOS_DEPLOYMENT_TARGET 6.0
    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -L/Users/davidraijmakers/Library/Developer/Xcode/DerivedData/Scanner-bbwbbvayxxnrhwdsgbkvibplofyw/Build/Products/Debug-iphoneos -L/Users/davidraijmakers/Documents/xcodezooi/Scanner/Scanner/ScanditSDK -F/Users/davidraijmakers/Library/Developer/Xcode/DerivedData/Scanner-bbwbbvayxxnrhwdsgbkvibplofyw/Build/Products/Debug-iphoneos -filelist /Users/davidraijmakers/Library/Developer/Xcode/DerivedData/Scanner-bbwbbvayxxnrhwdsgbkvibplofyw/Build/Intermediates/Scanner.build/Debug-iphoneos/Scanner.build/Objects-normal/armv7/Scanner.LinkFileList -dead_strip -fobjc-link-runtime -stdlib=libc++ -miphoneos-version-min=6.0 -liconv -lz -framework CoreVideo -framework AudioToolbox -framework AVFoundation -framework CoreMedia -framework QuartzCore -framework SystemConfiguration -framework UIKit -framework Foundation -framework CoreGraphics -lscanditsdk-iphone-2.2.5 -o /Users/davidraijmakers/Library/Developer/Xcode/DerivedData/Scanner-bbwbbvayxxnrhwdsgbkvibplofyw/Build/Products/Debug-iphoneos/Scanner.app/Scanner

Undefined symbols for architecture armv7:
  "std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
      l1348 in libscanditsdk-iphone-2.2.5.a(mirasense.o)
      l1486 in libscanditsdk-iphone-2.2.5.a(mirasense.o)
      l1585 in libscanditsdk-iphone-2.2.5.a(mirasense.o)
      l1600 in libscanditsdk-iphone-2.2.5.a(mirasense.o)
      l1602 in …
Run Code Online (Sandbox Code Playgroud)

linker-errors ios

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

Const声明导致Xcode中的链接器错误

我正在创建一个openGL引擎(ES 1.1的一侧和ES 2.0的一侧).两个引擎目前都有一些恒定的顶点(如下所示).不幸的是,在编译时我收到以下错误:

 ld: 1 duplicate symbol for architecture i386
 clang: error: linker command failed with exit code 1 (use -v to see invocation) with the duplicate symbol being _Verticies. 
Run Code Online (Sandbox Code Playgroud)

为什么Xcode抱怨两个单独文件中的重复常量值?这些文件符合相同的协议......但大部分都是它们的连接.在C++中,此方法工作正常,但在转换为Objective-C时会引起注意到的错误.

//Define the positions and colors of two triangles
const Vertex Verticies[] = { //per vertex data
    {{-0.5f, -0.866f},{1.0f, 1.0f, 0.5f, 1.0f}},
    {{0.5f, -0.866f},{1.0f, 1.0f, 0.5f, 1.0f}},
    {{0.0f, 1.0f},{1.0f, 1.0f, 0.5f, 1.0f}},
    {{-0.5f, -0.866f},{0.5f, 0.5f, 0.5f, 0.0f}},
    {{0.5f, -0.866f},{0.5f, 0.5f, 0.5f}},
    {{0.0f, -0.4f},{0.5f, 0.5f, 0.5f}},
};
Run Code Online (Sandbox Code Playgroud)

解决方案:截至目前,似乎默认情况下,Objective-C中的const值受项目范围的影响,而不仅仅是文件的范围.在C++中,当创建const值时,范围自动限制在它所在的文件中.要在Objective-C中修复此问题,必须使用静态标记将范围限制为该特定文件.您也可以使用extern标签(但这会更多一点).

xcode const header objective-c linker-errors

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

添加类后项目链接错误

我正在编写一个3D图像引擎(它读取带有场景信息的XML并用openGL打印),用于大学,在visual studio中(不幸的是......),我正在做解析器atm,它将xml读入一个简单的树状数据结构.其中一个元素是Camera,在我添加数据结构的那部分之前,程序运行正常,但是在我添加它之后,我遇到以下错误:

1>LIBCMT.lib(stdexcpt.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in MSVCRTD.lib(MSVCR100D.dll)
1>LIBCMT.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z) already defined in MSVCRTD.lib(MSVCR100D.dll)
1>LIBCMT.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) already defined in MSVCRTD.lib(MSVCR100D.dll)
1>LIBCMT.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) already defined in MSVCRTD.lib(MSVCR100D.dll)
1>LIBCMT.lib(_fpinit_.obj) : error LNK2005: __fltused already defined in a previous module
1>LIBCMT.lib(_fpinit_.obj) : error LNK2005: __ldused already …
Run Code Online (Sandbox Code Playgroud)

c++ linker-errors

3
推荐指数
2
解决办法
4628
查看次数

可变参数模板的链接器错误

我有一个包含可变参数模板和辅助函数的程序:

#include <iostream>
#include <string>

using std::cout;

template<typename... Ts>
void fooImpl(char const *cp, Ts... args);

template<typename... Ts>
inline void foo(const std::string &s, Ts... args)
{
    fooImpl(s.c_str(), args...);
}

void fooImpl(char const *cp)
{
    // do something
}

template<typename T, typename... Ts>
void fooImpl(char const *cp, T val, Ts... args)
{
    char special{'@'};

    while (*cp)
    {
        if (*cp == special)
        {
            // handle val ...

            // recurse over remaining args
            fooImpl(cp, args...);
            return;
        }
        ++cp;
    }    
}

int main()
{
    std::string …
Run Code Online (Sandbox Code Playgroud)

c++ linker-errors variadic-templates

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

通过转换运算符调用显式实例化的模板函数

让我们假设我们有一个函数模板,它在cpp文件中实现,并提供了明确的实例化,如下所示:

function.h

template<typename T> void function(T val);
Run Code Online (Sandbox Code Playgroud)

function.cpp

#include "function.h"

template<typename T> void function(T val) { /* do something */ }

template void function<double>(double val);
Run Code Online (Sandbox Code Playgroud)

我们现在能够在包含function.h的主文件中调用该函数,如下所示:

double val = 1.0;

function(val);
Run Code Online (Sandbox Code Playgroud)

让我们进一步假设我们有一个类如下所示:

data.h

class Data
    {
    private:
        double mVal;

    public:
        Data(double val) { mVal = val; }

        operator double () { return mVal; }
    };
Run Code Online (Sandbox Code Playgroud)

以下代码导致链接器错误LNK2019:unresolved external(Visual Studio 2010):

Data a(1.0);

function(a);
Run Code Online (Sandbox Code Playgroud)

我们可以使用以下表达式之一来提供一个 to function()

function<double>(a);
function(double(a));
...
Run Code Online (Sandbox Code Playgroud)

但为什么不能只调用函数(a)?如果没有使用类型Data 显式实例化function(),是否存在任何其他解决方案?

c++ templates linker-errors conversion-operator explicit-instantiation

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

CMake中CUDA库的链接

我正在使用CMake 3.10,将已编译的库链接到CMake中的测试可执行文件时遇到问题。我进行了大量搜索,发现在早期版本中存在一个问题,您无法在结果可执行文件中链接中间库。我不知道这是否已解决还是一个问题。

我的CMake文件如下所示:

算法:

cmake_minimum_required (VERSION 3.9)
project(${MODULE_NAME}_core LANGUAGES CXX CUDA)


add_subdirectory("${core_impl_dir}" implementation)


set(cuda_src "parallel/ParallelComputation.cu")
set(cuda_hdr "parallel/ParallelComputation.h")

add_library(${PROJECT_NAME} STATIC "${cuda_src}" "${cuda_hdr}"
)


target_include_directories (${PROJECT_NAME} PUBLIC "include/" 
"parallel/"
)

source_group("parallel"  FILES "${cuda_src}" "${cuda_hdr}")


set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER ${MODULE_NAME})
Run Code Online (Sandbox Code Playgroud)

测试:

project(${MODULE_NAME}_gtest LANGUAGES CXX CUDA)

add_subdirectory("${gtest_impl_dir}" implementation)

add_executable(${PROJECT_NAME} "${gtest_impl_src}")
target_link_libraries(${PROJECT_NAME} ${MODULE_NAME}_core)

enable_testing()
find_package(GTest REQUIRED)
include_directories("${GTEST_INCLUDE_DIRS}")


target_link_libraries(${PROJECT_NAME} ${GTEST_BOTH_LIBRARIES})

source_group("Implementation\\Source Files" FILES "${gtest_impl_src}" )

set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER ${MODULE_NAME})

add_test(${PROJECT_NAME} ${PROJECT_NAME})
Run Code Online (Sandbox Code Playgroud)

仅构建Algo可以正常工作,但是同时构建Test时,出现链接错误,例如

../implementation/libmatrix1_testCuda_core.a(ParallelComputation.cu.o):在Funktion中'cudaError cudaMalloc(float **,unsigned long)':tmpxft_00005ad0_00000000-5_ParallelComputation.cudafe1.cpp :(。text + 0x4'4' '

使用make VERBOSE=1我得到此链接命令的编辑:

/ …

c++ cuda cmake linker-errors

3
推荐指数
3
解决办法
4804
查看次数