C code generation symbols not found linker error
3 次查看(过去 30 天)
显示 更早的评论
I generated C code for my matlab functions and created a package by following the instructions at Package Code for Other Development Environments.
I had configured code generation for example main files.
After everything was complete, I tried to compile my code using
clang main.c -o out
However, I get the error:
Undefined symbols for architecture x86_64:
"_cg_imadjust", referenced from:
_main_cg_imadjust in main-b5a3fb.o
"_cg_imadjust_terminate", referenced from:
_main in main-b5a3fb.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have tried looking up other solutions online but they mostly talk about mex file generation whereas I am trying to compile C code. Other solutions talked about having a main.c file but I already have one. I am confused on what the issue is.
I have attached my package zip file (that includes the main.c and main.h files). I am using Mac 10.15.6.
Thank you.
0 个评论
回答(2 个)
Walter Roberson
2020-8-9
imadjust generates code that depends upon a shared library that you need to link in
0 个评论
Ryan Livingston
2020-8-10
编辑:Ryan Livingston
2020-8-10
In your ZIP file you'll notice files cg_imadjust.c, cg_imadjust_interminate.c that also need to be compiled and linked. main.c calls functions implemented in those files causing this error.
Try something like
clang *.c *.dylib
to compile and link in all of the C files and shared libraries to avoid those and other errors.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!