在用make命令编译makefile时,只生成.o文件。却没能生成。so文件,求高人指点?
小弟在用make命令编译makefile时,只生成.o文件。却没能生成。so文件。makefile文件如下:
libCardApp.so:CFLAGS = -g -rdynamic
libCardApp.so: DES.cpp.o TOOLS.cpp.o DEVICE.cpp.o LOG.cpp.o DEVCMD.cpp.o CARDCMD.cpp.o SAM.cpp.o CARD.cpp.o CARD1.cpp.o CARD2.cpp.o CARD3.cpp.o CARD4.cpp.o CARD5.cpp.o CARD6.cpp.o CARD7.cpp.o CARD8.cpp.o CARD9.cpp.o CARDTREAT.cpp.o CARDAPP.cpp.o
g++ $(CFLAGS) -fPIC -o libCardApp.so DES.cpp.o TOOLS.cpp.o DEVICE.cpp.o LOG.cpp.o DEVCMD.cpp.o CARDCMD.cpp.o SAM.cpp.o CARD.cpp.o CARD1.cpp.o CARD2.cpp.o CARD3.cpp.o CARD4.cpp.o CARD5.cpp.o CARD6.cpp.o CARD7.cpp.o CARD8.cpp.o CARD9.cpp.o CARDTREAT.cpp.o CARDAPP.cpp.o -shared -lpthread -L. -lZBLCommunication -Wl,-rpath,./
test:CFLAGS = -g -rdynamic
test:test.cpp
g++ $(CFLAGS) -D __LINUX__ -o test test.cpp -lpthread -L. -lCardApp -lZBLCommunication -Wl,-rpath,./
(部分省略)
.PHONY:clean
clean:
rm -f *.cpp.o
注:1.编译环境我用的是CYGWIN,环境配置没有问题
2.我怀疑是不是因为用到的。cpp文件中没有对函数进行声明呢?
3.小弟make -f makefile后编译器直接出来一堆的警告,说“char字符不能转换”。而且报错说-rdynamic找不到。这是怎么回事?
libCardApp.so:CFLAGS = -g -rdynamic
libCardApp.so: DES.cpp.o TOOLS.cpp.o DEVICE.cpp.o LOG.cpp.o DEVCMD.cpp.o CARDCMD.cpp.o SAM.cpp.o CARD.cpp.o CARD1.cpp.o CARD2.cpp.o CARD3.cpp.o CARD4.cpp.o CARD5.cpp.o CARD6.cpp.o CARD7.cpp.o CARD8.cpp.o CARD9.cpp.o CARDTREAT.cpp.o CARDAPP.cpp.o
g++ $(CFLAGS) -fPIC -o libCardApp.so DES.cpp.o TOOLS.cpp.o DEVICE.cpp.o LOG.cpp.o DEVCMD.cpp.o CARDCMD.cpp.o SAM.cpp.o CARD.cpp.o CARD1.cpp.o CARD2.cpp.o CARD3.cpp.o CARD4.cpp.o CARD5.cpp.o CARD6.cpp.o CARD7.cpp.o CARD8.cpp.o CARD9.cpp.o CARDTREAT.cpp.o CARDAPP.cpp.o -shared -lpthread -L. -lZBLCommunication -Wl,-rpath,./
test:CFLAGS = -g -rdynamic
test:test.cpp
g++ $(CFLAGS) -D __LINUX__ -o test test.cpp -lpthread -L. -lCardApp -lZBLCommunication -Wl,-rpath,./
(部分省略)
.PHONY:clean
clean:
rm -f *.cpp.o
注:1.编译环境我用的是CYGWIN,环境配置没有问题
2.我怀疑是不是因为用到的。cpp文件中没有对函数进行声明呢?
3.小弟make -f makefile后编译器直接出来一堆的警告,说“char字符不能转换”。而且报错说-rdynamic找不到。这是怎么回事?
...全文
相关推荐
linux下构建多目录下Makefile产生so动态库样例
在Linux环境下,构建多目录下的Makefile以生成.so动态库是一项常见的任务,特别是在大型软件项目中。
make命令及makefile文件
#### 二、make命令基础`make`命令的核心在于执行makefile文件中定义的目标(target)。每个目标可以依赖于其他目标或文件,并指定如何生成这些目标的具体命令。
mac os x将C文件编译成.so库
**编译动态库**:在命令行中进入包含`mylib.c`和`Makefile`的目录,然后执行`make`命令: ``` make ``` 这将生成一个名为`libmylib.so`的动态库文件。
Make命令完全详解教程.docx
Make 命令完全详解教程Make 命令是一个非常重要的编译命令,无论是在 Linux 还是在 Unix 环境中。在项目开发和安装应用软件时,我们经常要用到 Make 或 Make install。
Make it so
如果你在编写自己的makefile时遇到困难,或者希望优化现有项目的构建流程,这个"Make it so"项目可能会是一个有价值的资源。


