【问题标题】:make library not found找不到库
【发布时间】:2011-08-11 02:08:55
【问题描述】:

我正在尝试使用第三方库编译程序,在我的例子中是 Omnet++。显然“make”没有找到库,但它使用的路径是正确的,如你所见(在某种意义上,我可以在 omnet++ 源代码树下看到库)

    pv135168:basic Bob$ opp_makemake    
Creating Makefile in /Users/Bob/Code/network_sim/basic... Makefile created, running "make depend" to add dependencies... opp_makedep -Y --objdirtree -I. -f Makefile -P\$O/ --   ./*.cc   

    pv135168:basic Bob$ make   
    g++ -c -g -Wall
        -fno-stack-protector   -m32  -DHAVE_PCAP -DXMLPARSER=libxml
        -DWITH_PARSIM -DWITH_NETBUILDER  -I.
        -I/Users/Bob/Code/omnetpp-4.1/include -o out/gcc-debug//txc1.o txc1.cc g++ -m32 -Wl,-rpath,/Users/Bob/Code/omnetpp-4.1/lib -Wl,-rpath,. -o out/gcc-debug//basic  out/gcc-debug//txc1.o  -Wl,-all_load  
        -L"/Users/Bob/Code/omnetpp-4.1/lib/gcc"
        -L"/Users/Bob/Code/omnetpp-4.1/lib" -u _tkenv_lib -lopptkenvd
        -loppenvird -lopplayoutd -u _cmdenv_lib -loppcmdenvd -loppenvird 
        -loppsimd -lstdc++   
     ld: library not found for -lopptkenvd   
    collect2: ld returned 1 exit status make: *** [out/gcc-debug//basic]   
    Error 1 pv135168:basic Bob$

【问题讨论】:

    标签: macos makefile environment-variables omnet++


    【解决方案1】:

    它正在以下目录中查找名为 libopptkenvd.dyliblibopptkenvd.a 的文件:

    /Users/Bob/Code/omnetpp-4.1/lib/gcc
    /Users/Bob/Code/omnetpp-4.1/lib
    

    该文件是否在这些目录之一中(或在标准目录中,如/usr/lib)?我在您的输出中没有看到这方面的迹象。

    【讨论】:

    • 对不起... Windows 开发靠大脑。是的,dylib(固定)。你能仔细检查ls /Users/Bob/Code/omnetpp-4.1/lib/libopptkenvd.dylib 并确保它确实返回了一些东西(并且它不是空的)吗?链接器告诉你它不存在。
    • 我明白了,库的真实名称是 libopptkenv.dylib 而不是 libopptkenvd.dylib。奇怪,它一定是在makefile中以某种方式生成的错字..
    猜你喜欢
    • 2017-02-02
    • 2016-10-31
    • 2018-08-22
    • 2018-07-24
    • 2014-12-13
    • 2016-10-09
    • 2018-09-12
    • 2020-08-03
    • 2016-02-22
    相关资源
    最近更新 更多