我以前有NAG C Library Mark 23,而我以前用
编译g++ -std=c++11 -lm file.cpp -o output.o -I/opt/NAG/clmi623dgl/include
/opt/NAG/clmi623dgl/lib/libnagc_nag.a -L/opt/NAG/clmi623dgl/lib -lpthread
一切都很好。现在我正在使用NAG Mark 26,我正在尝试使用
进行编译g++ -std=c++11 -lm file.cpp -o output.o -I/Users/user/NAG/clmi626ddl/include
-L/Users/user/NAG/clmi626ddl/lib -lpthread
/Users/user/NAG/clmi626ddl/lib/libnagc_mkl.a
/Users/user/NAG/clmi626ddl/lib/libnagc_nag.a
然而我收到错误
Undefined symbols for architecture x86_64:
"_CFDictionarySetValue", referenced from:
_Ff75173be03ba8abe1a864da3d5eb72fd in libnagc_mkl.a(p01zzfn.o)
"_CFNumberCreate", referenced from:
_Ff75173be03ba8abe1a864da3d5eb72fd in libnagc_mkl.a(p01zzfn.o)
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
使用NAG标记26进行正确编译需要做什么?
答案 0 :(得分:0)
我在文件夹NAG / clmi626ddl / scripts中找到了解决方案:
英特尔编译器的:
icpc -I/Users/user/NAG/clmi626ddl/include
/Users/user/NAG/clmi626ddl/lib/libnagc_nag.a -framework IOKit
-framework CoreFoundation /Users/user/NAG/clmi626ddl/rtl/libifcoremt.a
-lpthread -lc++ -lm file.cpp -o file.o -std=c++11 -O3 -lm
for clang:
clang -I/Users/user/NAG/clmi626ddl/include
/Users/user/NAG/clmi626ddl/lib/libnagc_nag.a -framework IOKit
-framework CoreFoundation /Users/user/NAG/clmi626ddl/rtl/libifcoremt.a
/Users/user/NAG/clmi626ddl/rtl/libimf.a
/Users/user/NAG/clmi626ddl/rtl/libirc.a
/Users/user/NAG/clmi626ddl/rtl/libsvml.a -lpthread -lm -lstdc++