I have a project with the following included within the source:
extern module_entry_info
cm_entry_singlediode,
cm_entry_singlediodeparams,
cm_entry_iec61853par;
static module_entry_info *module_table[] = {
&cm_entry_singlediode,
&cm_entry_singlediodeparams,
&cm_entry_iec61853par,
0 };
And I'm getting the following errors:
/Library/Developer/CommandLineTools/usr/bin/c++ -DOBJEXXFCL_ALIGN=64 -pipe -std=c++11 -pedantic -ffor-scope -Wall -Wextra -Wno-unknown-pragmas -Wno-attributes -Wno-delete-non-virtual-dtor -Wno-missing-braces -Wno-vexing-parse -Wno-invalid-source-encoding -Wall -Wno-unknown-pragmas -Wno-deprecated -std=c++11 -g -DOBJEXXFCL_ARRAY_INIT_DEBUG -ggdb -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -dynamiclib -Wl,-headerpad_max_install_names -o ../../../Products/sscd.dylib -install_name @rpath/sscd.dylib CMakeFiles/ssc.dir/core.cpp.o CMakeFiles/ssc.dir/sscapi.cpp.o CMakeFiles/ssc.dir/vartab.cpp.o ../../../Products/sharedd.a
Undefined symbols for architecture x86_64:
"_cm_entry_singlediode", referenced from:
module_table in sscapi.cpp.o
"_cm_entry_singlediodeparams", referenced from:
module_table in sscapi.cpp.o
"_cm_entry_iec61853par", referenced from:
module_table in sscapi.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [Products/sscd.dylib] Error 1
make[2]: *** [third_party/ssc/ssc/CMakeFiles/ssc.dir/all] Error 2
make[1]: *** [third_party/ssc/ssc/CMakeFiles/ssc.dir/rule] Error 2
make: *** [ssc] Error 2
with the following in my CMakeLists.txt
if(MSVC)
add_compile_options(/MP /W4 /w44191 /w44242 /w44266 /w44302 /w44388 /w44826 /w44905 /w44906 /w44928)
add_compile_definitions( __DLL__ __64BIT__ __WINDOWS__ _CRT_SECURE_NO_WARNINGS __VISUALC__ )
foreach (flag_var CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG)
set(${flag_var} "${${flag_var}} /D_DEBUG" CACHE STRING "compile flags" FORCE)
endforeach()
else(MSVC)
if (APPLE)
add_compile_options(-arch x86_64 -fno-common)
add_definitions(-D__MACOSX__ -DWX_PRECOMP)
else ()
add_definitions(-D__UNIX__)
endif()
add_definitions(-D__64BIT__)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas -Wno-deprecated -std=c++11" )
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_compile_definitions(_DEBUG)
else()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3" )
endif()
endif(MSVC)
Is there a compiler flag I've missed, or is there some other issue?
Aucun commentaire:
Enregistrer un commentaire