当前位置: 技术问答>linux和unix
交叉编译时,找不到库文件
来源: 互联网 发布时间:2017-02-20
本文导语: 交叉编译时不能找到-lcppunit,在/usr/local/lib下存在所需库文件的连接。 请问这种情况如何解决 makefile脚本 CC=armv6zk-none-linux-gnueabi-gcc INC=/mnt/hgfs/VMshareDir/cppunit/cppunit-1.12.1/include OBJ=test.o TARGET=cppunit_CROSS #all:$(OBJ) # ...
交叉编译时不能找到-lcppunit,在/usr/local/lib下存在所需库文件的连接。
请问这种情况如何解决
makefile脚本
提示错误信息
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
请问这种情况如何解决
makefile脚本
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
①进入/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
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的那个包就可以了。
sudo apt-get install 下载搜索到的,后缀是-dev的那个包就可以了。
|
#include
void *dlopen(const char *filename, int flag);
char *dlerror(void);
void *dlsym(void *handle, const char *symbol);
int dlclose(void *handle);
Link with -ldl.