linux中print未定义引用解决方法

linux中print未定义引用解决方法,第1张

linux中print未定义引用需要用链接器。链接器可能会在扫描库的链接阶段决定它不需要来自特定库的东西,然后在找到链接中的一些未定义符号后,它将不再重新扫描该库。目标文件。如果将对象文件放在第一位,则不会遇到此问题。

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

根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。

方法如下

gcc

-c

main.c

#

-c参数的作用是让gcc只编译,不链接

gcc

-c

test.c

gcc

-o

main

main.o

test.o

#

将编译好的目标代码链接

当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)

Windows下VS2008使用ZeroMQ说明一、下载ZeroMQ

二、编译ZeroMQ库文件

解压zeromq-4.0.3.zip文件,进入builds\msvc目录,用VS打开*.sln工程文件,编译生成解决方案。编译完成后,会在lib目录下生成dll和lib文件

三、编写简单的测试工程

用VS新建2个项目,一个是server端,一个是client端

将ZeroMQ源码项目的include目录下的两个文件“zmq.h”,“zmq_utils.h”拷贝至自己新建的工程

将ZeroMQ源码项目的lib目录下的两个文件“libzmq.dll”,“libzmq.lib”拷贝至自己新建的工程

将文件“zmq.h”,“zmq_utils.h”和“libzmq.lib”添加进自己新建的项目。

client端代码:

#include <stdio.h>

#include <iostream>

#include <string.h>

#include "zeroMQ/zmq.h"

#include "zeroMQ/zmq_utils.h"

int main(int argc,char** argv)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7628516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存