我安装了Sourcery for Windows,编写了makefile,我遇到了一些错误:
undefined reference to dlopen
添加“-ldl”修复了问题。我还想在Ubuntu上构建相同的应用程序 - 相同的makefile但不同的编译器 - 设置为“arm-linux-gnueabi-g ++ - 4.6”。我得到了同样的错误。 也许在Ubuntu上我使用的是x86而不是arm lib。所以我删除了“-ldl”参数并添加了:
/usr/arm-linux-gnueabi/lib/libdl.a
来源之后 - 仍然是同样的问题。所以也许我还需要添加.so文件:
/usr/arm-linux-gnueabi/lib/libdl.so
没有帮助。有任何想法吗?也许我应该使用不同的lib?
使文件看起来像:
CXX = arm-linux-gnueabi-g++-4.6
SOURCES = file.cpp
LIB = ##
SOLIB = ##
CFLAGS = ##
LFLAGS = -lrt
#-ldl #commented to add the paths manually
SOFLAGS = ##
test: $(SOURCES)
$(CXX) $(CFLAGS) $(SOURCES) $(LFLAGS) /usr/arm-linux-gnueabi/lib/libdl.a /usr/arm-linux-gnueabi/lib/libdl.so $(SOFLAGS) -o test