我正在尝试在 Mac 上构建 libdecodeqr。我的 C++ 构建和链接历史都在 Windows 上,因此这是一次令人兴奋的发现之旅。
我终于到了要创建链接库的地步。我正在运行的命令是:
g++ -shared -o libdecodeqr.so.0.9.3 bitstream.o codedata.o container.o ecidecoder.o formatinfo.o galois.o imagereader.o libdecodeqr.o -L/opt/local/lib -arch i386 -lcxcore -lcv
结果是:
Undefined symbols:
"_main", referenced from:
start in crt1.10.5.o
我的印象是,使用 -shared 标志创建库意味着我不需要 main 函数。源代码中肯定没有。
只是为了好玩,我将 int main() {return 0;} 添加到其中一个 cpp 文件并重建。整个过程都已编译和链接,但是当我尝试将输出用作库时,我收到错误消息,告诉我无法链接到主可执行文件。我想这是有道理的。
我还需要传递给 g++ 来告诉它构建库吗?
-shared
OSX 上不支持。使用任一-dynamiclib
or -bundle
(取决于您要创建哪种类型的共享库)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)