makefile--Unfound symbol

本文详细介绍了使用Makefile构建C++共享库的过程,包括依赖项管理和库文件连接,确保构建顺利进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unfound symbol ,库函数的包含问题或者头文件包含问题

makefile对#的识别度太低了,如果使用了,#它之后的可能就不能识别了,然后会报错的Unfound symbol

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

/usr/vacpp/bin/makeC++SharedLib -o /cicm/src/dao/testcase/rel/FUNCTEST.ibmcpp -brtl -bnortllib -p100 -nmain -bI:/usr/lpp/cics/lib/cicsprCpp.exp  FUNCTEST.o cperftest_byeasydao.o  cabstractperftest.o  cperftest_bynativesql.o  cperftest_byproc.o  /cicm/commlib/libappCICM.a  -L/cicm/commlib -lcnccCICMaix -lxmlCICMaix  /usr/lib/libpthreads.a /usr/lib/libinterface.so /usr/lib/libxerces-c-3.1.so  -liconv -lz  -lCNAPSmac -lCNAPS2hsm  -L/oracli/app/oracle/product/11.2.0/lib -lclntsh  -L/cicm/src/dao -lcommdao  -lcommdbtools -L/home/test3/gtest-1.6.0 -lgtest -lmqm_r -L/cicm/commlib -lbaseCICM -lcommCICM -lmsgCICM -lchkCICM  -L/opt/IBM/db2/V9.7/lib32 -ldb2

/////////////////////////////////////////////////////////////////////////////////////////////////////////////

/usr/vacpp/bin/makeC++SharedLib

-o /cicm/src/dao/testcase/rel/FUNCTEST.ibmcpp ====连接需要的文件,生产ibmcpp

-brtl -bnortllib -p100 -nmain -bI:/usr/lpp/cics/lib/cicsprCpp.exp 

FUNCTEST.o cperftest_byeasydao.o  cabstractperftest.o  cperftest_bynativesql.o  cperftest_byproc.o  =====连接需要的文件的.o

/cicm/commlib/libappCICM.a  -L/cicm/commlib -lcnccCICMaix -lxmlCICMaix 

/usr/lib/libpthreads.a /usr/lib/libinterface.so /usr/lib/libxerces-c-3.1.so  -liconv -lz  -lCNAPSmac -lCNAPS2hsm  -L/oracli/app/oracle/product/11.2.0/lib -lclntsh  -L/cicm/src/dao -lcommdao  -lcommdbtools -L/home/test3/gtest-1.6.0 -lgtest -lmqm_r -L/cicm/commlib -lbaseCICM -lcommCICM -lmsgCICM -lchkCICM  -L/opt/IBM/db2/V9.7/lib32 -ldb2

转载于:https://www.cnblogs.com/orchid-sky/p/3532565.html

### Makefile 中 `-f` 和 `-e` 参数的功能及用法 #### `-f` 参数 在 `make` 命令中,`-f` 或 `--file` 参数用于指定一个特定的 Makefile 文件作为构建脚本。默认情况下,`make` 会在当前目录中查找名为 `Makefile` 或 `makefile` 的文件来执行任务。然而,通过使用 `-f` 参数,可以显式地告诉 `make` 使用其他名称或路径下的文件。 例如: ```bash make -f custom_makefile ``` 上述命令会指示 `make` 执行名为 `custom_makefile` 的文件中的规则[^1]。 #### `-e` 参数 `-e` 或 `--environment-overrides` 参数的作用是允许环境变量覆盖 Makefile 中定义的同名变量。通常情况下,Makefile 中定义的变量优先级高于环境变量,但如果启用了 `-e` 参数,则环境变量会被赋予更高的优先级。 例如,假设有一个 Makefile 如下: ```makefile CC=gcc hello: hello.c $(CC) -o $@ $< ``` 如果没有启用 `-e` 参数,并且环境中设置了 `CC=clang`,则仍然会使用 `gcc` 来编译程序。但是,如果运行以下命令: ```bash export CC=clang make -e ``` 此时,`make` 将使用 `clang` 而不是 `gcc` 进行编译操作[^3]。 #### 组合示例 以下是结合 `-f` 和 `-e` 参数使用的例子: 假设有两个文件:一个是自定义的 Makefile (`my_makefile`),另一个是一个简单的 C 源文件 (`example.c`)。 ```makefile # my_makefile CFLAGS=-Wall example: example.c $(CC) $(CFLAGS) -o $@ $< ``` 现在设置环境变量并调用 `make`: ```bash export CC=clang make -f my_makefile -e ``` 在这种情况下,`make` 会加载 `my_makefile` 并使用 `clang` 编译器代替默认的 `gcc`[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值