日期:2014-05-16  浏览次数:21289 次

交叉编译时,找不到库文件
交叉编译时不能找到-lcppunit,在/usr/local/lib下存在所需库文件的连接。
请问这种情况如何解决
makefile脚本
Python code

CC=armv6zk-none-linux-gnueabi-gcc
INC=/mnt/hgfs/VMshareDir/cppunit/cppunit-1.12.1/include
OBJ=test.o
TARGET=cppunit_CROSS
#all:$(OBJ)
#       $(CC)  -I$(INC) -L/usr/local/lib/libcppunit.a  $(OBJ) -lcppunit -ldl -o $(TARGET) 
#$(OBJ):test.cpp
#       $(CC)   -c -I$(INC) test.cpp
all:
         $(CC) -L/usr/local/lib/libcppunit.a -I$(INC) test.cpp  -lcppunit -ldl -o $(TARGET)
clean:
         rm -rf *.o test


提示错误信息
armv6zk-none-linux-gnueabi-gcc -L/usr/local/lib/libcppunit.a -I/mnt/hgfs/VMshareDir/cppunit/cppunit-1.12.1/include test.cpp -lcppunit -ldl -o cppunit_CROSS
/opt/ubq/devkit/arm/arm11/lib/gcc/armv6zk-none-linux-gnueabi/4.3.2/../../../../armv6zk-none-linux-gnueabi/bin/ld: cannot find -lcppunit
collect2: ld returned 1 exit status
检查usr/local/ib库内容
[root@localhost cppunittest]# ls /usr/local/lib
libcppunit-1.12.so.1 libcppunit.a libcppunit.so subsystem
libcppunit-1.12.so.1.0.0 libcppunit.la pkgconfig



------解决方案--------------------
你可以尝试一下如下的方法

①进入/usr/local/cppunit/lib,把找不到的动态链接库【libcppunit.so.1.12...】copy到根目录的/lib下。

②编辑自己个人目录下的配置文件.bashrc。通过修改LD_LIBRARY_PATH解决。
LD_LIBRARY_PATH=/usr/local/cppunit/lib:LD_LIBRARY_PATH
------解决方案--------------------
-lcppunit 这个参数是不是应该是这样呢:-lcppunit-1.12
Perl code

CC=armv6zk-none-linux-gnueabi-gcc
INC=/mnt/hgfs/VMshareDir/cppunit/cppunit-1.12.1/include
OBJ=test.o
TARGET=cppunit_CROSS
#all:$(OBJ)
#       $(CC)  -I$(INC) -L/usr/local/lib/libcppunit.a  $(OBJ) -lcppunit -ldl -o $(TARGET) 
#$(OBJ):test.cpp
#       $(CC)   -c -I$(INC) test.cpp
all:
         $(CC) -L/usr/local/lib/libcppunit.a -I$(INC) test.cpp  -lcppunit-1.12 -ldl -o $(TARGET)
clean:
         rm -rf *.o test

------解决方案--------------------
sudo apt-cache search 库文件名
sudo apt-get install 下载搜索到的,后缀是-dev的那个包就可以了。
------解决方案--------------------
探讨

我修改了makefile,但仍然不能解决ld 出错的情况
Python code

CC=armv6zk-none-linux-gnueabi-gcc
INC=/mnt/hgfs/VMshareDir/cppunit/cppunit-1.12.1/include
OBJ=test.o
TARGET=cppunit_CROSS
METHOD=y
ifeq (y,$(METHOD))
all……