精华内容
下载资源
问答
  • libncurses中函数的未定义引用
    2021-05-12 15:11:09

    当我编译此代码时,我得到以下gcc错误:

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

    /home/matt/Dropbox/school/2011/cs3210/test/sizeterm.c:9: undefined reference to `setupterm'

    /home/matt/Dropbox/school/2011/cs3210/test/sizeterm.c:10: undefined reference to `tigetnum'

    /home/matt/Dropbox/school/2011/cs3210/test/sizeterm.c:11: undefined reference to `tigetnum'

    collect2: ld returned 1 exit status

    make: *** [sizeterm] Error 1

    这是代码:

    #include

    #include

    #include

    #include

    int main()

    {

    int nrows, ncolumns;

    setupterm(NULL, fileno(stdout), (int *)0);

    nrows = tigetnum("lines");

    ncolumns = tigetnum("cols");

    printf("This terminal has %d columns and %d rows

    ", ncolumns, nrows);

    exit(0);

    }

    Libncurses已正确安装在我的机器上.我从Arch linux笔记本电脑和我学校安装的Ubuntu服务器得到了相同的结果.这段特殊的代码直接取自本书.难道我做错了什么?我做了一些谷歌搜索,看起来好像以前有人遇到过这个问题,但我无法缩小解决方案的范围.

    更多相关内容
  • ‘cv::waitKey(int)’未定义引用 我一直以为是C++11或者g++版本的原因,看到: http://forum.ubuntu.com.cn/viewtopic.php?f=48&t=377522 提出: g++ `pkg-config –cflags –libs opencv` lena.cpp -o lena ...
  • 我正在尝试为STM32F4Discovery编写一个多线程裸机应用程序,它使用的是面向大众的实时(RTFM)crate. 我从一个examplethis example:#![deny(unsafe_code)]#![no_main]#![no_std]extern crate cortex_m;...

    我正在尝试为STM32F4Discovery编写一个多线程裸机应用程序,它使用的是面向大众的实时(RTFM)

    crate

    . 我从一个

    example

    this example

    :

    #![deny(unsafe_code)]

    #![no_main]

    #![no_std]

    extern crate cortex_m;

    extern crate cortex_m_rtfm as rtfm;

    extern crate cortex_m_semihosting;

    extern crate panic_semihosting;

    extern crate stm32f4;

    use stm32f4::stm32f407;

    use rtfm::app;

    app! {

    device: stm32f407,

    }

    fn init(_p: init::Peripherals) {

    }

    fn idle() -> ! {

    loop {

    rtfm::wfi();

    }

    }

    我可以让它编译,但与rust lld链接失败

    = note: rust-lld: error: undefined symbol: main

    我很困惑因为当我跑步的时候

    cargo expand

    我有一个主要功能:

    fn main() {

    #![allow(path_statements)]

    let init: fn(init::Peripherals) = init;

    rtfm::atomic(unsafe { &mut rtfm::Threshold::new(0) },

    |_t|

    unsafe {

    let _late_resources =

    init(init::Peripherals{core:

    ::stm32f407::CorePeripherals::steal(),

    device:

    ::stm32f407::Peripherals::steal(),});

    });

    let idle: fn() -> ! = idle;

    idle();

    }

    我刚接触Rust(事实上我希望通过这个项目来学习语言),不知道错误可能在哪里。

    展开全文
  • IE11也支持html2canvas该插件 Promise 未定义 引用该脚本即可
  • linuxidc@linuxidc:~/linuxidc.com$ gcc linuxidc.c -o linuxidc.com在使用gcc编译c时提示/tmp/cchJksha.o:在函数‘prime’中:linuxidc.c:(.text+0x11):‘sqrt’未定义引用/tmp/cchJksha.o:在函数‘main’中...

    linuxidc@linuxidc:~/linuxidc.com$ gcc linuxidc.c -o linuxidc.com

    在使用gcc编译c时提示

    /tmp/cchJksha.o:在函数‘prime’中:

    linuxidc.c:(.text+0x11):对‘sqrt’未定义的引用

    /tmp/cchJksha.o:在函数‘main’中:

    linuxidc.c:(.text+0x9f):对‘pow’未定义的引用

    collect2: error: ld returned 1 exit status

    gcc编译的时候也要在指令后面加 -lm:

    linuxidc@linuxidc:~/linuxidc.com$ gcc linuxidc.c -o linuxidc.com -lm

    2300e833a13f38bb551c7fffa20c0f60.png

    即可编译成功。

    原因:缺少某个库,用 -l 参数将库加入。Linux的库命名是一致的, 一般为 libxxx.so, 或 libxxx.a, libxxx.la, 要链接某个库就用  -lxxx,去掉头 lib 及 "." 后面的 so, la, a 等即可。

    常见的库链接方法为:数学库 -lm; posix 线程 -lpthread

    gcc编译时对’xxxx’未定义的引用问题

    在使用gcc编译的时候有时候会碰到这样的问题,编译为.o(obj) 文件没有问题,但是编译(这一步应该是链接)为可执行文件的时候会出现找不到’xxx’的定义的情况。

    例如:

    g++ -o spider  -rdynamic -lpthread -levent -lcrypt -ldl bloomfilter.o confparser.o crc32.o dso.o hashs.o md5.o qstring.o sha1.o socket.o spider.o threads.o url.o

    ...

    dso.o:在函数‘dso_load(char const*, char const*)’中:

    dso.cpp:(.text+0x3c):对‘dlopen’未定义的引用

    dso.cpp:(.text+0x4c):对‘dlsym’未定义的引用

    dso.cpp:(.text+0xb5):对‘dlerror’未定义的引用

    dso.cpp:(.text+0x13e):对‘dlclose’未定义的引用

    原因

    出现这种情况的原因,主要是C/C++编译为obj文件的时候并不需要函数的具体实现,只要有函数的原型即可。但是在链接为可执行文件的时候就必须要具体的实现了。如果错误是未声明的引用,那就是找不到函数的原型,解决办法这里就不细致说了,通常是相关的头文件未包含。

    解决办法

    指定原因就好办了,既然知道是缺少了函数的具体实现,那么就给它这个函数的实现就好了。比如上面的例子,是因为缺失了dlopen、dlsym、dlerror、dlclose这些函数的实现,这几个函数是用于加载动态链接库的,编译的时候需要添加-ldl来使用dl库(这是静态库,在系统目录下/usr/lib/i386-linux-gnu/libdl.a、/usr/lib/x86_64-linux-gnu/libdl.a)。

    但是看上面编译的时候是有添加-ldl选项的,那么为什么不行呢?

    gcc 依赖顺序问题

    这个主要的原因是gcc编译的时候,各个文件依赖顺序的问题。

    在gcc编译的时候,如果文件a依赖于文件b,那么编译的时候必须把a放前面,b放后面。

    例如:在main.c中使用了pthread库相关函数,那么编译的时候必须是main.c在前,-lpthread在后。 gcc main.c -lpthread -o a.out 。

    上面出现问题的原因就是引入库的顺序在前面了,将其放置在后面即可了。

    g++ -o spider  bloomfilter.o confparser.o crc32.o dso.o hashs.o md5.o qstring.o sha1.o socket.o spider.o threads.o url.o    -rdynamic -lpthread -levent -lcrypt -ldl

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • Ubuntu gcc错误:'log'等函数未定义引用a.c#include #include int main(){float a;void print_logarithm(double);printf("enter a num:");scanf("%f",&a);print_logarithm(a);return 0;}void print_...

    Ubuntu gcc错误:对'log'等函数未定义的引用

    a.c

    #include

    #include

    int main()

    {

    float a;

    void print_logarithm(double);

    printf("enter a num:");

    scanf("%f",&a);

    print_logarithm(a);

    return 0;

    }

    void print_logarithm(double x)

    {

    if(x<=0.0)

    {

    printf("Positive numbers only,please.\n");

    return;

    }

    printf("The log of x is %f",log(x));

    }

    Ubuntu gcc编译

    直接命令gcc -Wall a.c

    1 linuxidc.com@linuxidc:~$ gcc -Wall a.c2 /tmp/ccmKjOLq.o:在函数‘print_logarithm’中:3 a.c:(.text+0x97):对‘log’未定义的引用4 collect2: error: ld returned 1 exit status

    查了一下发现:主要是C/C++编译为obj文件的时候并不需要函数的具体实现,只要有函数的原型即可。但是在链接为可执行文件的时候就必须要具体的实现了。验证如下:

    1 linuxidc.com@linuxidc:~$ gcc -Wall -c a.c2 linuxidc.com@linuxidc:~$ gcc -Wall -o a a.o3 a.o:在函数‘print_logarithm’中:4 a.c:(.text+0x97):对‘log’未定义的引用5 collect2: error: ld returned 1exit status6 linuxidc.com@linuxidc:~$

    编译时没有问题,链接生成可执行文件时报错。接下来加上-lm。 链接成功,如下:

    1 linuxidc.com@linuxidc:~$ gcc -Wall -o a a.o -lm2 linuxidc.com@linuxidc:~$

    注意1:-lm要加在编译文件后面。

    这个主要的原因是gcc编译的时候,各个文件依赖顺序的问题。在gcc编译的时候,如果文件a依赖于文件b,那么编译的时候必须把a放前面,b放后面。

    注意2:sqrt()函数也是头文件中的函数,但sqrt函数的使用没有以上限制,即编译时不加-lm也可以。

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • /usr/lib/x86_64-linux-gnu/libSM.so:‘uuid_generate@UUID_1.0’未定义引用 /home/rick/anaconda3/lib/libfontconfig.so.1:‘FT_Done_MM_Var’未定义引用 /usr/lib/x86_64-linux-gnu/libSM.so:‘uuid_...
  • ‘XXX‘未定义引用

    千次阅读 2020-08-12 20:36:49
    如果错误是未声明的引用,那就是找不到函数的原型,解决办法这里就不细致说了,通常是相关的头文件未包含。 在gcc编译的时候,如果文件a依赖于文件b,那么编译的时候必须把a放前面,b放后面。 例如:在main.c中使用了...
  • 当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示:/tmp/ccFKsdPa.o: 在函数`main'中:/tmp/ccFKsdPa.o(.text+0xb): `mysql_init'的未定义引用。/tmp/ccFKsdPa.o(.text...
  • } 编译时报错: ../main.cpp:9:'dlopen'未定义引用 ../main.cpp:12:'dlerror'未定义引用 ../main.cpp:16:'dlclose'未定义引用 collect2: ld returned 1 exit status ... ... 我用的编程环境 ...
  • #include using namespace cv;int main(){Mat img=imread("cornea.jpg");imshow("src",img);waitKey(0);return 0;}我编译它:g++ main.cpp -o main `pkg-config opencv --cflags --libs`要么g++ main.cpp -o main -I...
  • 我想在linux下构建我的...我得到了很多“未定义引用”错误消息,如:undefined reference to `std::basic_string要么undefined reference to `cgicc::Cgicc::Cgicc(cgicc::CgiInput*)'这是我的makefile:CXX = gccI...
  • 我想在C中做一个简单的斐波那契计算器,但当编译gcc告诉我,我缺少pow和floor函数。怎么了?码:#include #include int fibo(int n);int main() {printf("Fib(4) = %d", fibo(4));return 0;}int fibo(int n) {double...
  • main 未定义引用The error: undefined reference to 'main' in C program is a very stupid mistake by the programmer, it occurs when the main() function does not exist in the program. If you used main...
  • 使用gcc或g++编译程序时,有时候会出现‘xxx’未定义的错误,但是你明明加入了依赖库的引用,可为什么还提示这个错误呢?刚刚我就遇到这个问题,搞了半天摸不着头脑,差点放弃了,还好看到一篇博客提醒了我。 gcc...
  • main 未定义引用 As we know that, 我们知道 Each program must have a main() function, compiler starts execution from the main() function - main() is an entry point to the program, 每个程序必须具有...
  • 在终端用代码打开文本编辑器还是好的,在vs手里咋就夭折了? 可以救我的为谢谢你一辈子!
  • 自定义动态库 ‘*’未定义引用本帖最后由 longruliang 于 2015-05-25 16:02:26 编辑自己编写了一个串口方面的动态库,想写一个测试程序,在编译的时候冒出‘*’未定义引用,怎么解决,我用的CodeBlock卡在这...
  • I have four files list.h list.c test_list.c Makefilelist.h#ifndef List_H#define List_H#endif/*nothing else*/list.c#include "list.h"#include #include /*nothing else*/test_list.c#include "list.h"#includ...
  • 在使用vs2019开发Linux过程中,出现这种编译错误,有很多情况,我这里列举三种: 1、未包含头文件(跟开发windows一样); 2、未包含库文件(这就跟windows端开发提示不一样了); 3、包含的库文件顺序不对。...
  • 感觉我写的代码没问题啊,为什么会出现这种错误 ... } 错误为: 在函数‘_start’中: (.text+0x20):‘main’未定义引用 collect2: error: ld returned 1 exit status [Done] exited with code=1 in 0.067 seconds
  • 我写了一个简单的程序来测试xdotool是否能满足我的要求. (嗯,不是真的.我的第一步是确保我是否可以调用xdotool库.)#include #include using namespace std;int main(){cout << xdo_version() <...
  • 我在以下几行代码中重现了我在一个更大的项目中所经历的行为.我遗漏了#ifndef守卫和#include指令,试图提高可读性.调用make时会产生链接器错误. makefile包含在问题的末尾.C类继承自B的继承自A的O.O是完全不同的类....
  • Possible Duplicate:0700007001对于大学的一个简单的课程作业,我遇到了一些问题,这让我很困惑.基本上,我要编写一个程序,除其他外,它计算给定半径的球体积.我以为我会使用pow()函数而不是简单地使用r * r * r来获得...
  • gcc 中函数未定义引用 在Linux中修复'pow'的未定义引用 (Fixing undefined reference to 'pow' in Linux) This is a common error while compiling C program in GCC/G++ Linux. This error occurs when you are...
  • 使用gcc编译使用了<math.h>库的c语言文件,出现了 通过百度找到答案,编译时需要在 gcc -O2 ${filename}.c -o ${filename}.exe ...后面加上-lm,-lm表示需要到这个库里面寻找使用的函数 ...
  • 实际的构造函数使用引用超构造函数的初始化列表,所以它看起来像这样:cpuInput::cpuInput (const string &label) : StateMonitor::input(label) { }该类编译为目标文件.如果我将该文件与调用构造函数的驱动程序...
  • drivers/built-in.o:在函数‘mmc_blk_drm_part_get’中:/home/zouxf/project/rk3399/rk_linux_sdk/kernel/drivers/char/drm/core.c:340:‘_mcount’未定义引用/home/zouxf/project/rk3399/rk_linux_sdk/...
  • linux下未定义引用

    千次阅读 2020-07-22 10:29:32

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,999
精华内容 35,999
关键字:

对未定义的引用

友情链接: ccly_patch_demo.rar