标签: undefined-symbol

什么是"___emutls_get_address"符号?

哦,我是GCC和MAC和Makefile的新手.今天我打算使用MAC OS X和GCC 4.4.2构建一个动态库,但是当链接.o文件时,编译器抱怨如下:

Undefined symbols:
  "___emutls_get_address", referenced from:
      _malloc in michael.o
      _malloc in michael.o
ld: symbol(s) not found
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了这个信息,但我无法理解结果,我想知道这个符号是什么意思,以及为什么很多程序都有这个链接错误.我也想知道这个错误的可能原因是什么,链接命令是:

g++ -Dx86 -D_GNU_SOURCE -D_REENTRANT  -Wall -m32 \
    -fno-strict-aliasing -fno-pic -O3 -ggdb \
    michael.o malloc_new.o -o libmichael.so \
    -lpthread -lm -lstdc++  -shared
Run Code Online (Sandbox Code Playgroud)

macos linker gcc undefined-symbol

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

编译内核模块时"__aeabi_ldivmod"未定义

我正在尝试在raspberry pi上编译一个内核模块(我自己编写).我正在目标环境中编译它.

我得到以下输出:

make -C /lib/modules/3.12.23-1.20140626git25673c3.rpfr20.armv6hl.bcm2708/build M=/home/harmic/horus/ppminput modules
make[1]: Entering directory `/usr/src/kernels/3.12.23-1.20140626git25673c3.rpfr20.armv6hl.bcm2708'
  CC [M]  /home/harmic/horus/ppminput/ppminput.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "__aeabi_ldivmod" [/home/harmic/horus/ppminput/ppminput.ko] undefined!
  CC      /home/harmic/horus/ppminput/ppminput.mod.o
  LD [M]  /home/harmic/horus/ppminput/ppminput.ko
make[1]: Leaving directory `/usr/src/kernels/3.12.23-1.20140626git25673c3.rpfr20.armv6hl.bcm2708'
Run Code Online (Sandbox Code Playgroud)

果然,如果我尝试插入模块,我得到:

insmod: ERROR: could not insert module ./ppminput.ko: Unknown symbol in module
Run Code Online (Sandbox Code Playgroud)

在syslog中:

Sep  2 22:44:26 pidora kernel: [ 7589.354709] ppminput: Unknown symbol __aeabi_ldivmod (err 0)
Run Code Online (Sandbox Code Playgroud)

在我的模块中,我已经确定导致问题的行:

unsigned int chan_abs_val = tdiff / CHAN_SCALE;
Run Code Online (Sandbox Code Playgroud)

(其中tdiff是s64,CHAN_SCALE是整数文字).

如果我评论该部门,问题就会消失.这是我模块中唯一使用除法的行.

一些谷歌搜索出现了一些对这个问题的引用,但在编译内核模块的上下文中没有找到.

我的makefile看起来像这样:

obj-m += ppminput.o

all:
    make -C /lib/modules/$(shell …
Run Code Online (Sandbox Code Playgroud)

c linux-kernel undefined-symbol raspberry-pi

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

未找到架构 x86_64 的符号 - Cmake - Mac sierra

最近我开始了一个 C++ 的新项目。问题是,当我尝试编译它时,出现链接错误。我今天花了一整天的时间尝试调试它,但我并没有真正在任何地方找到好的解决方案。如果有人能帮忙那就太好了。我使用的是 Mac Sierra。

parsing/methylation.h

#ifndef EPIRL_METHYLATION_H
#define EPIRL_METHYLATION_H

#include <stdio.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>

using namespace std;

namespace methylation {
    struct MethLine {
        string chr;
        int coord;
        char strand;
        int methylated;
        int un_methylated;
        string context;
        string tag;
    };

    string calculateMethylationByContext(
            MethLine m_input[], int length,
            int window_start, int window_end, int threshold);

    void calculateMethylation(
        const istream &methylation_stream,
        const istream &coordinate_stream,
        const ostream &output_stream
    );
}

#endif //EPIRL_METHYLATION_H
Run Code Online (Sandbox Code Playgroud)

parsing/methylation.cpp

#include "methylation.h"

namespace methylation {
    string calculateMethylationByContext(
            MethLine …
Run Code Online (Sandbox Code Playgroud)

c++ cmake linkage undefined-symbol

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

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

我收到了以下错误,并且不能为我的生活弄清楚我做错了什么.

$ 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
Run Code Online (Sandbox Code Playgroud)

main.c中:

#include <stdio.h>
#include "wtf.h"

main(){
    wtf();
}
Run Code Online (Sandbox Code Playgroud)

wtf.h:

void wtf();
Run Code Online (Sandbox Code Playgroud)

wtf.c:

void wtf(){
    printf("I never see the light of day.");
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我将整个函数包含在头文件中而不仅仅是签名中,那么它就符合要求,因此我知道wtf.h被包含在内.为什么编译器看不到wtf.c?或者我错过了什么?

问候.

c linker-errors undefined-reference undefined-symbol

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

尝试使用EventKit时获取"未定义的符号"?

我试图使用基于doco和SimpleEKDemo应用程序的EventKit,但是我收到以下单个错误.

这个错误意味着什么以及建议采取哪些步骤进行故障排除(我第一次遇到这样的链接错误而且我有点丢失 - 我已经解析了我的代码而不是示例代码,我看不到任何错误明显的差异).

Undefined symbols:
  "_OBJC_CLASS_$_EKEventStore", referenced from:
      objc-class-ref-to-EKEventStore in AppointmentListController.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

请注意,在控制器的头文件中我使用的事件包代码我有:

#import <EventKit/EventKit.h>
#import <EventKitUI/EventKitUI.h>
Run Code Online (Sandbox Code Playgroud)

iphone undefined-symbol ios eventkit

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

如何将文件添加到Xcode项目?(编写Unity插件)

我打赌我的问题是非常基本的,所以请原谅我,因为我不熟悉Xcode,因为我在Unity工作并为我们的iOS项目使用现成的插件,所以直到现在才真正需要深入Xcode.

我想写一个非常基本的自定义插件,但不能让Xcode接受它.我按照Unity页面上的教程,将我的.h和.m文件添加到Assets/Plugins/iOS,其中(如教程所述)它们将自动合并到Xcode中.

构建之后,Xcode抛出两个错误:*"架构armv7的未定义符号:"__ XY",引自:RegisterMonoModules.o中的__Z19RegisterMonoModulesv"*和armv6相同.

正如我在这里阅读类似的问题,这是因为文件没有添加到Xcode项目,尽管事实上,它们应该自动添加.在Xcode中,我可以在Project Navigator中看到我的两个文件.我还在Build Phases列表中看到了我的.mm文件.

有什么问题?

xcode plugins unity-game-engine undefined-symbol

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

使用Jest时,防止"test/expect/etc未定义"错误

Facebook的玩笑测试框架很容易上手,但文档忽略了一个恼人的方面:测试语句将被突出显示,通过试图警告未定义符号的任何编辑错误,因为test,expect和没有定义的所有匹配方法.

WebStorm突出了Jest测试文件中的错误

同样,尝试直接运行测试文件node将失败ReferenceError: test is not defined.

需要添加什么require/ import声明才能消除这些错误?

javascript syntax-highlighting undefined-symbol jestjs

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

Java:符号查找错误:/snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0:未定义符号:__libc_pthread_init,版本GLIBC_PRIVATE

我一直在开发一个使用 gui.jar 文件导入一些类的 Java 项目。直到昨天一切都工作正常。现在,我可以通过命令编译 .class 文件

javac -d ./bin -sourcepath ./src -classpath ./bin/gui.jar src/simulation/TestSimulateur.javac

但是当我尝试执行该程序时

java -classpath bin:bin/gui.jar simulation.TestSimulateur

我收到错误

java: symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE make: *** [Makefile:47: carte1] Error 127

我不太了解 snap 和库的工作原理,所以我不确定问题的根源。奇怪的是,只有在 VSCode 上运行时才会出现该问题,而在普通 Linux 终端上运行则正常。

我进行了很多搜索,但找不到解决问题的方法。正如我所说,我是 Linux 系统的新手。在我的尝试之间,我尝试重新安装 VSCode、更新系统并更新 snap 包,但这些都不起作用。

java linux undefined-symbol

7
推荐指数
2
解决办法
7350
查看次数

OS X 上的 libg2o 链接器错误

我收到以下链接器错误:

cd /Users/mhoggan/Development/bluenote/image_pose_adjustment/image_pose_adjustment/native/graph/cmake-build-debug/src && /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/graph_optimization.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -std=c++11 -Wall -Werror -O3 -DNDEBUG -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/graph_optimization.dir/main.cpp.o CMakeFiles/graph_optimization.dir/BundleRigidGraphOptimizer.cpp.o CMakeFiles/graph_optimization.dir/FlexibleGraphOptimizer.cpp.o CMakeFiles/graph_optimization.dir/LoopClosure.cpp.o CMakeFiles/graph_optimization.dir/PoseJsonReader.cpp.o  -o graph_optimization  -L/Users/mhoggan/Development/bluenote/image_pose_adjustment/image_pose_adjustment/native/graph/cmake-build-debug/g2o-src/lib  /usr/local/lib/libboost_filesystem-mt.a /usr/local/lib/libboost_system-mt.a -lg2o_cli -lg2o_core -lg2o_interface -lg2o_parser -lg2o_solver_csparse -lg2o_solver_dense -lg2o_solver_pcg -lg2o_stuff -lg2o_types_icp -lg2o_types_sba -lg2o_types_sim3 -lg2o_types_slam2d -lg2o_types_slam3d -lg2o_csparse_extension -lcsparse -ljsoncpp -Wl,-rpath,/Users/mhoggan/Development/bluenote/image_pose_adjustment/image_pose_adjustment/native/graph/cmake-build-debug/g2o-src/lib 
Undefined symbols for architecture x86_64:
  "g2o::csparse_extension::cs_cholsolsymb(cs_sparse const*, double*, cs_symbolic const*, double*, int*)", referenced from:
      g2o::LinearSolverCSparse<Eigen::Matrix<double, -1, -1, 0, -1, -1> >::solve(g2o::SparseBlockMatrix<Eigen::Matrix<double, -1, -1, 0, -1, -1> > const&, double*, double*) in LoopClosure.cpp.o
  "g2o::csparse_extension::writeCs2Octave(char const*, cs_sparse const*, …
Run Code Online (Sandbox Code Playgroud)

macos cmake clang undefined-symbol g2o

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

nm 既是“U”又是“T”,是什么意思?

我在运行时遇到未定义的符号错误,当我在相关库中查找符号时,我得到结果:

nm -C -D /home/farmer/anaconda3/envs/general/lib/python3.6/site-packages/pyscannerbit/libScannerBitCAPI.so | grep empty_
                 U YAML::detail::node_data::empty_scalar[abi:cxx11]
00000000002b5860 T YAML::detail::node_data::empty_scalar[abi:cxx11]()
Run Code Online (Sandbox Code Playgroud)

但这怎么可能呢?该符号既未定义,又在库中?什么?或者这些实际上是不同的符号?当损坏时,名称确实略有不同:

nm -D /home/farmer/anaconda3/envs/general/lib/python3.6/site-packages/pyscannerbit/libScannerBitCAPI.so | grep empty_
                 U _ZN4YAML6detail9node_data12empty_scalarB5cxx11E
00000000002b5860 T _ZN4YAML6detail9node_data12empty_scalarB5cxx11Ev
Run Code Online (Sandbox Code Playgroud)

这有道理吗?

c++ undefined-symbol nm

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