c++ - linux动态库链接时出现undefined reference to的错误
黄舟
黄舟 2017-04-17 16:26:38
[Linux讨论组]

最近我在linux上使用 log4cplus 出现了如下的问题:
代码


    using namespace log4cplus;
    using namespace log4cplus::helpers;
    
    SharedAppenderPtr _append;
    SharedAppenderPtr append(new DailyRollingFileAppender("./log/Test.log", HOURLY, true, 1, true, true));
    Logger::getRoot().addAppender(append);
    Logger _logger = Logger::getRoot();
    Logger test = Logger::getInstance("test");
    Logger subTest = Logger::getInstance("test.subtest");
    for (int i = 0; i < 5; i++)
    {
        
        LOG4CPLUS_DEBUG(subTest, "Entering  loop #" << i);
    }

在编译的时候,一开始直接生成可执行文件是没有问题的:

 g++ test.cpp -std=c++11 -I/usr/local/include -L/usr/local/lib -llog4cplus -o test
 

但是当我分成两步来做的时候就有问题了:

g++ test.cpp -std=c++11 -I/usr/local/include  -c  -o test.o  
g++ -L/usr/local/lib -llog4cplus test.o -o test

生成目标文件成功,但是生成可执行文件的时候,就是错误的。

求大神指教,十分感谢。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(1)
PHP中文网

Link的时候,符号查找是从左到右的,你把test.o放到库的左边应该就可以了。

g++ test.o -L/usr/local/lib -llog4cplus -o test

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号