尝试构建共享库g ++/mac时未定义的符号_main

Gar*_*son 4 c++ macos linker g++

我想在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
Run Code Online (Sandbox Code Playgroud)

结果是:

Undefined symbols:
    "_main", referenced from:
       start in crt1.10.5.o
Run Code Online (Sandbox Code Playgroud)

我的印象是使用-shared标志创建一个库意味着我不需要主函数.源代码中肯定没有一个.

只是为了踢,我将int main(){return 0;}添加到其中一个cpp文件并重建.整个事情编译和链接,但当我尝试将输出用作库时,我得到错误告诉我,我无法链接到主可执行文件.我觉得这很有道理.

还有什么我需要传递给g ++来告诉它构建一个库吗?

Mar*_*wis 7

-sharedOSX不支持.使用-dynamiclib-bundle(取决于您要创建的共享库类型).