linux下C语言对编译报错‘expl’未定义的引用

作者&投稿:局士 (若有异议请与网页底部的电邮联系)
ubuntu下用C语言访问数据库出现‘mysql_init’未定义的引用的错误~

只要libmysqlclient.so在/usr/lib/mysql 中,-L/usr/lib/mysql -lmysqlclient 就是link libmysqlclient.so
所以,你应该找一下libmysqlclient.so的安装位置,比如安装在/usr/lib/i386-linux-gnu
链接libmysqlclient.so,就是-L/usr/lib/i386-linux-gnu -lmysqlclient
另外,这种编译出现的问题,请贴出具体的输出,不要泛泛的讲。泛泛的讲别人根本不明白是那里出了问题。。。

出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。

根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。
方法如下
gcc -c main.c # -c参数的作用是让gcc只编译,不链接gcc -c test.cgcc -o main main.o test.o # 将编译好的目标代码链接当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)

可以查看编程手册,对里面提到的宏进行测试,看是否支持该函数:

比较简单的方法是加编译器参数: -std=c99

别忘了链接的时候加-lm



编译是加入-lm选项


在linux下进行c语言编写,可以对warning 进行分级设置吗?
可以的下面这些参数就是控制gcc的警告级别的:-Wall turns on the following warning flags:-Waddress -Warray-bounds (only with-O2)-Wc++11-compat -Wchar-subscripts -Wenum-compare (in C\/ObjC; this is on by default in C++)-Wimplicit-int (C and Objective-C only)-Wimplicit-function...

初学c语言,想在LInux系统下gcc跑c语言,整个流程步骤是什么样的啊?比如...
1. 打开终端 2. 输入 vi test.c 3. 输入 include<stdio.h> void main(){ printf("hello ! \\n");} 4. 按键Esc+:+w+q 完成文件保存 5. gcc -o test test.c 完成编译连接 6. .\/test即可得到:hello 如有其他疑问,可以发邮件至xiaowh001@126.com。

关于linux下的c语言编程
从你的提问来看,概念比较混乱:1.为什么要使用make?你vim了makefile\/Makefile档案吗?2.cd make是转到“make”目录(linux中惯用,相当于windows下的文件夹),你都没建立“make”目录,自然找不到了。针对你目前的情况,你可以:1.基础 这里不需要用make gcc -c main.c gcc -c f1.c gcc -c...

如何在linux环境下编辑一个c语言源程序并将其编译为可执行文件?_百度...
打开安装好的Linux系统(ubuntu18.04)1.安装编辑器 使用语句:sudo apt-get install vim安装vim,可以在安装前查看是否安装vim编辑器。(特别提示:在安装vim前最好将软件更新,使用指令sudo apt-get update.)之所以要加sudo的原因是这些安装和更新软件的时候需要使用管理员权限才可以进行。2.安装gcc编译...

如何用GCC在linux下编译C语言程序?
在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器,假设我们有下面一个非常简单的源程序(hello.c):int main(int argc,char **argv){ printf("Hello Linux\\n");} 要编译这个程序,我们只要在命令行下执行:gcc -o hello hello.c gcc 编译器就会为我们生成一个hello的可执行文件....

linux下,C语言头文件在哪
一、 C标准库头文件,以及Linux的标准库文件的对应头文件,默认放在\/usr\/include下。 如图:标识出了最常用的几个头文件。二、 自定义头文件,或者集成头文件,需要在编译的时候指定。可以在命令行中指定,也可以在makefile中指定。指定自定义头文件路径方式为:-IPATH1 -IPATH2...如当前目录下的...

linux下的c语言编程和windows下的c语言编程有什么区别
函数库的区别linux下的C函数库和windows下的函数库系统调用的机制不一样 Glibc包含了主要的C库。这个库提供了基本例程,用于分配内存、搜索目录、打开关闭文件、读写文件、字串处理、模式匹配、数学计算等等。所说的机制不一样不单是指中断号的问题,中断号也是通过input参数和output把函数地址和输出地址定位...

在linux环境下如何用C语言编程?代码在那里写呢,写完保存成什么格式的呢...
编辑器用vi或vim或emacs写,写完保存为**.c 然后用gcc编译,gdb调试。比如gcc -o test.c test --- 运行 .\/test 编译时只有加 -g 参数,才可用gdb调试。如:gcc -g test.c -o test

在Linux C语言下,可执行的Shell脚本文件与编译之后的C可执行文件的区别...
(1)Shell脚本与Windows\/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux\/Unix下的命令。(2)C语言的设计目标是提供一种能以...

用C语言编写的程序,能不能直接在Linux下运行?
你的问题问得模棱两可的。按照我的理解有三个意思,1。在windows或mac系统下写的可以正常编译的C源代码,能不能再linux直接编译执行。2,在windows或mac系统下编译好的C程序可以不可以直接拿到linux下执行。3.在linux系统下可不可以执行C语言写的程序。当然应该不可能是地三个意思了。如果是第二个意思...

安县13935761082: C语言编译错误 [Error] ld returned 1 exit -
鄞呼致康: 试一下用管理员权限运行 Code::Blocks;我看你的代码像是在全角状态下输入的,试一试改成半角状态重新输入一次看看;

安县13935761082: C语言编程时不能编译,总显示一个错误,亟待解决!!! -
鄞呼致康: 大多数情况下都是vc安装的问题 试试下面的方法吧: Compiling... Error spawning cl.exe 可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的“Compiling... ,Error spawning cl.exe”错误提示给郁闷过.很多人的选择是重装...

安县13935761082: 可执行程序无法在Linux上运行,显示line 1: syntax error: word unexpected (expecting ") -
鄞呼致康: 应该用静态编译,我也遇到了这样的问题,现在已经解决了. arm-linux-gcc-static hello.c -o hello 把生成的hello可执行文件传到arm板上就行了,用的时候需要修改一下权限.chmod 777 hello就可以执行了

安县13935761082: 在c语言编译时出现Error spawning cl.exe,是怎么回事? -
鄞呼致康: 你的编译器路径不见了,进入菜单tools->options,点directries,选excutable files,添加VC的路径就行了.我的路径有: C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin C:\Program Files\Microsoft Visual Studio\VC98\BIN C:\...

安县13935761082: C语言程序编译老是CL.exe错误 怎么回事 -
鄞呼致康: 1、一般这个问题都是在win7和vista下面用VC6的问题,尝试下面几种方法,如果不行,就重新找一个VC版本吧2、具体步凑:一: “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目 录 /VC98/Bin”下面,可以到相应的路径下找到这个应用程序.因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工 具)”—“Option(选择)”—“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径.很多情况可能就一个盘符的不同(例如VC装在C,但是这些路径全部在D),改过来就OK了.

安县13935761082: C语言在linux下编译通过,一运行就段错误 -
鄞呼致康: linux里面段错误就是内存访问的错误了,应该是你代码里的内存分配有问题,因为没看到你这里的struct studen的具体定义,只能让你注意看下studen的name这个字符串的定义,txt文件里的name字段有没有超出这个name的定义长度,如果超出了,fscanf就会报内存错误了

安县13935761082: 我在编译C语言时,遇到这样的错误,是什么意思Error spawning cl.exe -
鄞呼致康: 方法1: 启动VC时不要用图形界面,通过在命令提示符下输入:Msdev /useenv运行(注意啦/前面有个空格).它会强制使系统环境变量全高设置成正确值.而且,只需要使用一次这样的方式运行VC,以后再次通过双击图标的方式启动也不会有问...

安县13935761082: C语言代码编译一直出错 CL.exe -
鄞呼致康: #include<stdio.h>#include<conio.h> int demo(int a,int b) { if(a%b != 0) demo(b,a%b); else return b; } void main() { int a,b; printf("input a,b:"); scanf("%d %d",&a,&b); printf("Common demo of a,b is %d\n",demo(a,b)); getch(); }

安县13935761082: Linux下用g++编译c程序出错.. -
鄞呼致康: 我用一个例子来告诉你怎么样在 C++ 里使用C的头文件/函数.比方说我有一个C的头文件叫 c.h, C的源码文件叫 c.c,内容分别是 c.h:#ifndef _ASDFD_INCLUDED_#define _ASDFD_INCLUDED_#include extern int test(int a);#endif c.c:#include ...

安县13935761082: linux下写c++编译出错 -
鄞呼致康: 用 g++ hello.cpp -o hello试试 另外main函数的括号被你漏掉了

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网