cmake create executable Undefined symbols for architecture x86_64:

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

cmake create executable Undefined symbols for architecture x86_64:

Sean Wayland
I am attempting to write a cmakelists.txt file for an application.
The application has a couple of dependencies.
I have been able to build targets for the dependencies but when I try
and add an executable for the main application I encounter this error.

Undefined symbols for architecture x86_64:

  "_main", referenced from:

     implicit entry/start for main executable

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)


Googling the error and looking on stack exchange suggests that I don't
have a main function in the implicit entry/start .

Where does it look for this function ?
Does that file need to be first in the list of sources ?



This function is included here :
${CATSMAT_DIR}/Application/CATSMAT_main.cpp

My cmake file is below.

Any advice would be appreciated I have been stuck here for a while!

Best Sean


#######################################
# CMAKE CATSTMAT
#######################################
cmake_minimum_required(VERSION 3.6.3)
set(CMAKE_CXX_STANDARD 14)
if(CMAKE_CONFIGURATION_TYPES)
set(CMAKE_CONFIGURATION_TYPES Debug Release)
endif()

if(UNIX)
add_definitions(-Wall -DGCC)
endif(UNIX)

##### RPATH SETTING #####
set(CMAKE_MACOSX_RPATH 1)

#if(APPLE)
# set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
# if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
# set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
# elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
# set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
# elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
# set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
# else ()
# set (CMAKE_OSX_SYSROOT "macosx10.7")
# endif ()
# set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
#endif(APPLE)
#
#if(WIN32)
# add_definitions(-DWINVER=0x0400 -DWIN32)
# if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
#  add_definitions(-DVC6)
# elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
#  add_definitions(-DVC2005)
# endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
#endif(WIN32)

###############  BOOST LIBRARIES ###########
if (APPLE)
set(BOOST_ROOT "/usr/local/boost")
set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)

else (NOT APPLE)
set(BOOST_ROOT "C:/local/boost_1_58_0")
set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
endif (APPLE)

FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )


#######################################
# set directories, src and headers.

set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
set (GOOGLE_TEST_INC_DIR
${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)


set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)


#### SET SOURCES EXPLICITLY #####

set(SRC

${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp

${CATSMAT_DIR}/Application/CATSMAT_main.cpp
${CATSMAT_DIR}/Application/CATSMAT_menu.cpp

${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp

${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp

${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp

${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp

${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp




)




# old version of adding source code

#set (SRCFOLDERS


#       ${CATSMAT_DIR}/Analysis/src
#       ${CATSMAT_DIR}/CounterpointAnalysis/src
#       ${CATSMAT_DIR}/GeneralAnalysis/src
#       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
#       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
#       ${CATSMAT_DIR}/Application
#       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
#       ${CATSMAT_DIR}/Segmentation
#       ${CATSMAT_DIR}/Utilities
#)


set (INCFOLDERS
${libIMUSANT_DIR}
${CATSMAT_DIR}/Analysis/inc
        ${CATSMAT_DIR}/Application
        ${CATSMAT_DIR}/CounterpointAnalysis/inc
        ${CATSMAT_DIR}/GeneralAnalysis/inc
        ${CATSMAT_DIR}/Segmentation
        ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
        ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
        ${CATSMAT_DIR}/Utilities
        ${libIMUSANT_DIR}/DomainObjects/inc
${libIMUSANT_DIR}/Utilities/inc
${libIMUSANT_DIR}/FileProcessing/inc
${libIMUSANT_DIR}/Converters/MusicXML_v3
${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
        ${IMUSANT_DIR}/DomainObjects/inc
${IMUSANT_DIR}/Converters/MusicXML_v3
        ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
${IMUSANT_DIR}/Converters/Shared/inc
        ${IMUSANT_DIR}/FileProcessing/inc
        ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
        ${IMUSANT_DIR}/Utilities/inc
        ${SUFFIXTREE_DIR}
${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
        ${LOKI_DIR}
${SUFFIX_TREE_DIR}
${GOOGLE_TEST_INC_DIR}
)


#foreach(folder ${SRCFOLDERS})
# set(SRC ${SRC} "${folder}/*.cpp") # add source files
#endforeach(folder)
#file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})



## is this necessary I think target link directories might do the job ?

foreach(folder ${INCFOLDERS})
set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
set(INCL ${INCL} "${folder}") # add include folders
endforeach(folder)
 file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})


#######################################
# set includes ( is this needed ? )
include_directories( ${INCFOLDERS})
set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)


#######################################
# set library target

#if(APPLE OR MSVC)

set(target catsmat)

# I don't know why these if statements are included they seem to do nothing '
#else(APPLE OR MSVC)
# set(target catsmat)
#endif(APPLE OR MSVC)

##if(MSVC)
## enable_language(RC)
## set(LIBCONTENT ${CORESRC} ${COREH}
${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
##else(MSVC)
## set(LIBCONTENT ${CORESRC} ${COREH})
##endif(MSVC)

add_executable(${target} ${SRC} )

#### add include directories
include_directories ( ${INCFOLDERS} )

###############  Targeted Libraries ###########

TARGET_LINK_LIBRARIES(${target} gtest)
TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
TARGET_LINK_LIBRARIES(${target} libmusicxml2)
TARGET_LINK_LIBRARIES(${target} libIMUSANT)


set_target_properties (${target} PROPERTIES
FRAMEWORK TRUE
VERSION ${VERSION}
                        C_STANDARD 99
FRAMEWORK_VERSION ${VERSION}
PUBLIC_HEADER "${COREH}"
DEFINE_SYMBOL LIBMUSICXML_EXPORTS
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
)



#######################################
# install setup
if(NOT APPLE)
install ( TARGETS ${target} ${TOOLS}
RUNTIME DESTINATION bin
    LIBRARY DESTINATION lib
    ARCHIVE DESTINATION lib
    FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
    PUBLIC_HEADER DESTINATION include/libmusicxml
)
endif(NOT APPLE)






--
www.seanwayland.com

Sean Wayland
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: cmake create executable Undefined symbols for architecture x86_64:

Micha Hergarden
On 05-07-17 22:50, Sean Wayland wrote:

> I am attempting to write a cmakelists.txt file for an application.
> The application has a couple of dependencies.
> I have been able to build targets for the dependencies but when I try
> and add an executable for the main application I encounter this error.
>
> Undefined symbols for architecture x86_64:
>
>   "_main", referenced from:
>
>      implicit entry/start for main executable
>
> ld: symbol(s) not found for architecture x86_64
>
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>
>
> Googling the error and looking on stack exchange suggests that I don't
> have a main function in the implicit entry/start .
>
> Where does it look for this function ?
> Does that file need to be first in the list of sources ?
>
>
>
> This function is included here :
> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>
> My cmake file is below.
>
> Any advice would be appreciated I have been stuck here for a while!
>
> Best Sean
>
>
> #######################################
> # CMAKE CATSTMAT
> #######################################
> cmake_minimum_required(VERSION 3.6.3)
> set(CMAKE_CXX_STANDARD 14)
> if(CMAKE_CONFIGURATION_TYPES)
> set(CMAKE_CONFIGURATION_TYPES Debug Release)
> endif()
>
> if(UNIX)
> add_definitions(-Wall -DGCC)
> endif(UNIX)
>
> ##### RPATH SETTING #####
> set(CMAKE_MACOSX_RPATH 1)
>
> #if(APPLE)
> # set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
> # if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
> # elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
> # elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
> # else ()
> # set (CMAKE_OSX_SYSROOT "macosx10.7")
> # endif ()
> # set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
> #endif(APPLE)
> #
> #if(WIN32)
> # add_definitions(-DWINVER=0x0400 -DWIN32)
> # if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
> #  add_definitions(-DVC6)
> # elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
> #  add_definitions(-DVC2005)
> # endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
> #endif(WIN32)
>
> ###############  BOOST LIBRARIES ###########
> if (APPLE)
> set(BOOST_ROOT "/usr/local/boost")
> set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
> set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)
>
> else (NOT APPLE)
> set(BOOST_ROOT "C:/local/boost_1_58_0")
> set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
> set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
> endif (APPLE)
>
> FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
> INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
>
>
> #######################################
> # set directories, src and headers.
>
> set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
> set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
> set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
> set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
> set (GOOGLE_TEST_INC_DIR
> ${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
> set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>
>
> set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)
>
>
> #### SET SOURCES EXPLICITLY #####
>
> set(SRC
>
> ${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
> ${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
> ${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
> ${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
> ${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
> ${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
> ${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp
>
> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
> ${CATSMAT_DIR}/Application/CATSMAT_menu.cpp
>
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp
>
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp
>
> ${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
> ${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp
>
> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp
>
> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp
>
>
>
>
> )
>
>
>
>
> # old version of adding source code
>
> #set (SRCFOLDERS
>
>
> #       ${CATSMAT_DIR}/Analysis/src
> #       ${CATSMAT_DIR}/CounterpointAnalysis/src
> #       ${CATSMAT_DIR}/GeneralAnalysis/src
> #       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
> #       ${CATSMAT_DIR}/Application
> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
> #       ${CATSMAT_DIR}/Segmentation
> #       ${CATSMAT_DIR}/Utilities
> #)
>
>
> set (INCFOLDERS
> ${libIMUSANT_DIR}
> ${CATSMAT_DIR}/Analysis/inc
>         ${CATSMAT_DIR}/Application
>         ${CATSMAT_DIR}/CounterpointAnalysis/inc
>         ${CATSMAT_DIR}/GeneralAnalysis/inc
>         ${CATSMAT_DIR}/Segmentation
>         ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
>         ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
>         ${CATSMAT_DIR}/Utilities
>         ${libIMUSANT_DIR}/DomainObjects/inc
> ${libIMUSANT_DIR}/Utilities/inc
> ${libIMUSANT_DIR}/FileProcessing/inc
> ${libIMUSANT_DIR}/Converters/MusicXML_v3
> ${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
> ${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
>         ${IMUSANT_DIR}/DomainObjects/inc
> ${IMUSANT_DIR}/Converters/MusicXML_v3
>         ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
> ${IMUSANT_DIR}/Converters/Shared/inc
>         ${IMUSANT_DIR}/FileProcessing/inc
>         ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
>         ${IMUSANT_DIR}/Utilities/inc
>         ${SUFFIXTREE_DIR}
> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
>         ${LOKI_DIR}
> ${SUFFIX_TREE_DIR}
> ${GOOGLE_TEST_INC_DIR}
> )
>
>
> #foreach(folder ${SRCFOLDERS})
> # set(SRC ${SRC} "${folder}/*.cpp") # add source files
> #endforeach(folder)
> #file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
>
>
>
> ## is this necessary I think target link directories might do the job ?
>
> foreach(folder ${INCFOLDERS})
> set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
> set(INCL ${INCL} "${folder}") # add include folders
> endforeach(folder)
>  file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})
>
>
> #######################################
> # set includes ( is this needed ? )
> include_directories( ${INCFOLDERS})
> set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)
>
>
> #######################################
> # set library target
>
> #if(APPLE OR MSVC)
>
> set(target catsmat)
>
> # I don't know why these if statements are included they seem to do nothing '
> #else(APPLE OR MSVC)
> # set(target catsmat)
> #endif(APPLE OR MSVC)
>
> ##if(MSVC)
> ## enable_language(RC)
> ## set(LIBCONTENT ${CORESRC} ${COREH}
> ${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
> ##else(MSVC)
> ## set(LIBCONTENT ${CORESRC} ${COREH})
> ##endif(MSVC)
>
> add_executable(${target} ${SRC} )
>
> #### add include directories
> include_directories ( ${INCFOLDERS} )
>
> ###############  Targeted Libraries ###########
>
> TARGET_LINK_LIBRARIES(${target} gtest)
> TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
> TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
> TARGET_LINK_LIBRARIES(${target} libmusicxml2)
> TARGET_LINK_LIBRARIES(${target} libIMUSANT)
>
>
> set_target_properties (${target} PROPERTIES
> FRAMEWORK TRUE
> VERSION ${VERSION}
>                         C_STANDARD 99
> FRAMEWORK_VERSION ${VERSION}
> PUBLIC_HEADER "${COREH}"
> DEFINE_SYMBOL LIBMUSICXML_EXPORTS
> MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
> MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
> )
>
>
>
> #######################################
> # install setup
> if(NOT APPLE)
> install ( TARGETS ${target} ${TOOLS}
> RUNTIME DESTINATION bin
>     LIBRARY DESTINATION lib
>     ARCHIVE DESTINATION lib
>     FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
>     PUBLIC_HEADER DESTINATION include/libmusicxml
> )
> endif(NOT APPLE)
>
>
>
>
>
>
Hello Sean,

Could you try adding a 'project(CATSTMAT)' call right at the top of your
CMakeLists.txt? As well as setting a name for the project, this call
also enables languages by default.

HTH,
Micha



--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

signature.asc (537 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: cmake create executable Undefined symbols for architecture x86_64:

Sean Wayland
Hi Micha,
Thanks very much I tried that .. I added it to the application
directory cmakelists.txt file . Same issue .. It's already in the top
level cmake file which looks like this ..

project(CATSMAT)
cmake_minimum_required(VERSION 3.6.3)


if (APPLE)

    set(CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
endif (APPLE)


include_directories("catsmat/libIMUSANT")

add_subdirectory (catsmat/googletest-master/googletest)
add_subdirectory (catsmat/libMusicXMLv3/libmusicxml-3.00-src/cmake)
add_subdirectory (catsmat/libIMUSANT/cmake)
add_subdirectory (catsmat/libIMUSANT_Tests/cmake)
add_subdirectory (catsmat/catsmat/cmake)

set(CMAKE_CXX_STANDARD 14)

On Thu, Jul 6, 2017 at 2:48 AM, Micha Hergarden
<[hidden email]> wrote:

> On 05-07-17 22:50, Sean Wayland wrote:
>> I am attempting to write a cmakelists.txt file for an application.
>> The application has a couple of dependencies.
>> I have been able to build targets for the dependencies but when I try
>> and add an executable for the main application I encounter this error.
>>
>> Undefined symbols for architecture x86_64:
>>
>>   "_main", referenced from:
>>
>>      implicit entry/start for main executable
>>
>> ld: symbol(s) not found for architecture x86_64
>>
>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>>
>>
>> Googling the error and looking on stack exchange suggests that I don't
>> have a main function in the implicit entry/start .
>>
>> Where does it look for this function ?
>> Does that file need to be first in the list of sources ?
>>
>>
>>
>> This function is included here :
>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>
>> My cmake file is below.
>>
>> Any advice would be appreciated I have been stuck here for a while!
>>
>> Best Sean
>>
>>
>> #######################################
>> # CMAKE CATSTMAT
>> #######################################
>> cmake_minimum_required(VERSION 3.6.3)
>> set(CMAKE_CXX_STANDARD 14)
>> if(CMAKE_CONFIGURATION_TYPES)
>> set(CMAKE_CONFIGURATION_TYPES Debug Release)
>> endif()
>>
>> if(UNIX)
>> add_definitions(-Wall -DGCC)
>> endif(UNIX)
>>
>> ##### RPATH SETTING #####
>> set(CMAKE_MACOSX_RPATH 1)
>>
>> #if(APPLE)
>> # set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
>> # if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
>> # elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
>> # elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
>> # else ()
>> # set (CMAKE_OSX_SYSROOT "macosx10.7")
>> # endif ()
>> # set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>> #endif(APPLE)
>> #
>> #if(WIN32)
>> # add_definitions(-DWINVER=0x0400 -DWIN32)
>> # if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>> #  add_definitions(-DVC6)
>> # elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
>> #  add_definitions(-DVC2005)
>> # endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>> #endif(WIN32)
>>
>> ###############  BOOST LIBRARIES ###########
>> if (APPLE)
>> set(BOOST_ROOT "/usr/local/boost")
>> set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
>> set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)
>>
>> else (NOT APPLE)
>> set(BOOST_ROOT "C:/local/boost_1_58_0")
>> set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
>> set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
>> endif (APPLE)
>>
>> FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
>> INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
>>
>>
>> #######################################
>> # set directories, src and headers.
>>
>> set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
>> set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>> set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
>> set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
>> set (GOOGLE_TEST_INC_DIR
>> ${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
>> set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>
>>
>> set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)
>>
>>
>> #### SET SOURCES EXPLICITLY #####
>>
>> set(SRC
>>
>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp
>>
>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>> ${CATSMAT_DIR}/Application/CATSMAT_menu.cpp
>>
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp
>>
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp
>>
>> ${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
>> ${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp
>>
>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp
>>
>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp
>>
>>
>>
>>
>> )
>>
>>
>>
>>
>> # old version of adding source code
>>
>> #set (SRCFOLDERS
>>
>>
>> #       ${CATSMAT_DIR}/Analysis/src
>> #       ${CATSMAT_DIR}/CounterpointAnalysis/src
>> #       ${CATSMAT_DIR}/GeneralAnalysis/src
>> #       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>> #       ${CATSMAT_DIR}/Application
>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>> #       ${CATSMAT_DIR}/Segmentation
>> #       ${CATSMAT_DIR}/Utilities
>> #)
>>
>>
>> set (INCFOLDERS
>> ${libIMUSANT_DIR}
>> ${CATSMAT_DIR}/Analysis/inc
>>         ${CATSMAT_DIR}/Application
>>         ${CATSMAT_DIR}/CounterpointAnalysis/inc
>>         ${CATSMAT_DIR}/GeneralAnalysis/inc
>>         ${CATSMAT_DIR}/Segmentation
>>         ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
>>         ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
>>         ${CATSMAT_DIR}/Utilities
>>         ${libIMUSANT_DIR}/DomainObjects/inc
>> ${libIMUSANT_DIR}/Utilities/inc
>> ${libIMUSANT_DIR}/FileProcessing/inc
>> ${libIMUSANT_DIR}/Converters/MusicXML_v3
>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
>>         ${IMUSANT_DIR}/DomainObjects/inc
>> ${IMUSANT_DIR}/Converters/MusicXML_v3
>>         ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
>> ${IMUSANT_DIR}/Converters/Shared/inc
>>         ${IMUSANT_DIR}/FileProcessing/inc
>>         ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
>>         ${IMUSANT_DIR}/Utilities/inc
>>         ${SUFFIXTREE_DIR}
>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
>>         ${LOKI_DIR}
>> ${SUFFIX_TREE_DIR}
>> ${GOOGLE_TEST_INC_DIR}
>> )
>>
>>
>> #foreach(folder ${SRCFOLDERS})
>> # set(SRC ${SRC} "${folder}/*.cpp") # add source files
>> #endforeach(folder)
>> #file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
>>
>>
>>
>> ## is this necessary I think target link directories might do the job ?
>>
>> foreach(folder ${INCFOLDERS})
>> set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
>> set(INCL ${INCL} "${folder}") # add include folders
>> endforeach(folder)
>>  file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})
>>
>>
>> #######################################
>> # set includes ( is this needed ? )
>> include_directories( ${INCFOLDERS})
>> set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)
>>
>>
>> #######################################
>> # set library target
>>
>> #if(APPLE OR MSVC)
>>
>> set(target catsmat)
>>
>> # I don't know why these if statements are included they seem to do nothing '
>> #else(APPLE OR MSVC)
>> # set(target catsmat)
>> #endif(APPLE OR MSVC)
>>
>> ##if(MSVC)
>> ## enable_language(RC)
>> ## set(LIBCONTENT ${CORESRC} ${COREH}
>> ${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
>> ##else(MSVC)
>> ## set(LIBCONTENT ${CORESRC} ${COREH})
>> ##endif(MSVC)
>>
>> add_executable(${target} ${SRC} )
>>
>> #### add include directories
>> include_directories ( ${INCFOLDERS} )
>>
>> ###############  Targeted Libraries ###########
>>
>> TARGET_LINK_LIBRARIES(${target} gtest)
>> TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
>> TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
>> TARGET_LINK_LIBRARIES(${target} libmusicxml2)
>> TARGET_LINK_LIBRARIES(${target} libIMUSANT)
>>
>>
>> set_target_properties (${target} PROPERTIES
>> FRAMEWORK TRUE
>> VERSION ${VERSION}
>>                         C_STANDARD 99
>> FRAMEWORK_VERSION ${VERSION}
>> PUBLIC_HEADER "${COREH}"
>> DEFINE_SYMBOL LIBMUSICXML_EXPORTS
>> MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
>> MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
>> )
>>
>>
>>
>> #######################################
>> # install setup
>> if(NOT APPLE)
>> install ( TARGETS ${target} ${TOOLS}
>> RUNTIME DESTINATION bin
>>     LIBRARY DESTINATION lib
>>     ARCHIVE DESTINATION lib
>>     FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
>>     PUBLIC_HEADER DESTINATION include/libmusicxml
>> )
>> endif(NOT APPLE)
>>
>>
>>
>>
>>
>>
> Hello Sean,
>
> Could you try adding a 'project(CATSTMAT)' call right at the top of your
> CMakeLists.txt? As well as setting a name for the project, this call
> also enables languages by default.
>
> HTH,
> Micha
>
>
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake



--
www.seanwayland.com

Sean Wayland

licensed real estate salesperson
phone: 3475231455
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: cmake create executable Undefined symbols for architecture x86_64:

Micha Hergarden
On 06-07-17 15:59, Sean Wayland wrote:

> Hi Micha,
> Thanks very much I tried that .. I added it to the application
> directory cmakelists.txt file . Same issue .. It's already in the top
> level cmake file which looks like this ..
>
> project(CATSMAT)
> cmake_minimum_required(VERSION 3.6.3)
>
>
> if (APPLE)
>
>     set(CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
> endif (APPLE)
>
>
> include_directories("catsmat/libIMUSANT")
>
> add_subdirectory (catsmat/googletest-master/googletest)
> add_subdirectory (catsmat/libMusicXMLv3/libmusicxml-3.00-src/cmake)
> add_subdirectory (catsmat/libIMUSANT/cmake)
> add_subdirectory (catsmat/libIMUSANT_Tests/cmake)
> add_subdirectory (catsmat/catsmat/cmake)
>
> set(CMAKE_CXX_STANDARD 14)
>
> On Thu, Jul 6, 2017 at 2:48 AM, Micha Hergarden
> <[hidden email]> wrote:
>> On 05-07-17 22:50, Sean Wayland wrote:
>>> I am attempting to write a cmakelists.txt file for an application.
>>> The application has a couple of dependencies.
>>> I have been able to build targets for the dependencies but when I try
>>> and add an executable for the main application I encounter this error.
>>>
>>> Undefined symbols for architecture x86_64:
>>>
>>>   "_main", referenced from:
>>>
>>>      implicit entry/start for main executable
>>>
>>> ld: symbol(s) not found for architecture x86_64
>>>
>>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>>>
>>>
>>> Googling the error and looking on stack exchange suggests that I don't
>>> have a main function in the implicit entry/start .
>>>
>>> Where does it look for this function ?
>>> Does that file need to be first in the list of sources ?
>>>
>>>
>>>
>>> This function is included here :
>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>
>>> My cmake file is below.
>>>
>>> Any advice would be appreciated I have been stuck here for a while!
>>>
>>> Best Sean
>>>
>>>
>>> #######################################
>>> # CMAKE CATSTMAT
>>> #######################################
>>> cmake_minimum_required(VERSION 3.6.3)
>>> set(CMAKE_CXX_STANDARD 14)
>>> if(CMAKE_CONFIGURATION_TYPES)
>>> set(CMAKE_CONFIGURATION_TYPES Debug Release)
>>> endif()
>>>
>>> if(UNIX)
>>> add_definitions(-Wall -DGCC)
>>> endif(UNIX)
>>>
>>> ##### RPATH SETTING #####
>>> set(CMAKE_MACOSX_RPATH 1)
>>>
>>> #if(APPLE)
>>> # set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
>>> # if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
>>> # elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
>>> # elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
>>> # else ()
>>> # set (CMAKE_OSX_SYSROOT "macosx10.7")
>>> # endif ()
>>> # set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>> #endif(APPLE)
>>> #
>>> #if(WIN32)
>>> # add_definitions(-DWINVER=0x0400 -DWIN32)
>>> # if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>> #  add_definitions(-DVC6)
>>> # elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
>>> #  add_definitions(-DVC2005)
>>> # endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>> #endif(WIN32)
>>>
>>> ###############  BOOST LIBRARIES ###########
>>> if (APPLE)
>>> set(BOOST_ROOT "/usr/local/boost")
>>> set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
>>> set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)
>>>
>>> else (NOT APPLE)
>>> set(BOOST_ROOT "C:/local/boost_1_58_0")
>>> set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
>>> set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
>>> endif (APPLE)
>>>
>>> FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
>>> INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
>>>
>>>
>>> #######################################
>>> # set directories, src and headers.
>>>
>>> set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
>>> set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>> set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
>>> set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
>>> set (GOOGLE_TEST_INC_DIR
>>> ${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
>>> set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>
>>>
>>> set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)
>>>
>>>
>>> #### SET SOURCES EXPLICITLY #####
>>>
>>> set(SRC
>>>
>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp
>>>
>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>> ${CATSMAT_DIR}/Application/CATSMAT_menu.cpp
>>>
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp
>>>
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp
>>>
>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp
>>>
>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp
>>>
>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp
>>>
>>>
>>>
>>>
>>> )
>>>
>>>
>>>
>>>
>>> # old version of adding source code
>>>
>>> #set (SRCFOLDERS
>>>
>>>
>>> #       ${CATSMAT_DIR}/Analysis/src
>>> #       ${CATSMAT_DIR}/CounterpointAnalysis/src
>>> #       ${CATSMAT_DIR}/GeneralAnalysis/src
>>> #       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>> #       ${CATSMAT_DIR}/Application
>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>> #       ${CATSMAT_DIR}/Segmentation
>>> #       ${CATSMAT_DIR}/Utilities
>>> #)
>>>
>>>
>>> set (INCFOLDERS
>>> ${libIMUSANT_DIR}
>>> ${CATSMAT_DIR}/Analysis/inc
>>>         ${CATSMAT_DIR}/Application
>>>         ${CATSMAT_DIR}/CounterpointAnalysis/inc
>>>         ${CATSMAT_DIR}/GeneralAnalysis/inc
>>>         ${CATSMAT_DIR}/Segmentation
>>>         ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
>>>         ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
>>>         ${CATSMAT_DIR}/Utilities
>>>         ${libIMUSANT_DIR}/DomainObjects/inc
>>> ${libIMUSANT_DIR}/Utilities/inc
>>> ${libIMUSANT_DIR}/FileProcessing/inc
>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3
>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
>>>         ${IMUSANT_DIR}/DomainObjects/inc
>>> ${IMUSANT_DIR}/Converters/MusicXML_v3
>>>         ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
>>> ${IMUSANT_DIR}/Converters/Shared/inc
>>>         ${IMUSANT_DIR}/FileProcessing/inc
>>>         ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
>>>         ${IMUSANT_DIR}/Utilities/inc
>>>         ${SUFFIXTREE_DIR}
>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
>>>         ${LOKI_DIR}
>>> ${SUFFIX_TREE_DIR}
>>> ${GOOGLE_TEST_INC_DIR}
>>> )
>>>
>>>
>>> #foreach(folder ${SRCFOLDERS})
>>> # set(SRC ${SRC} "${folder}/*.cpp") # add source files
>>> #endforeach(folder)
>>> #file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
>>>
>>>
>>>
>>> ## is this necessary I think target link directories might do the job ?
>>>
>>> foreach(folder ${INCFOLDERS})
>>> set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
>>> set(INCL ${INCL} "${folder}") # add include folders
>>> endforeach(folder)
>>>  file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})
>>>
>>>
>>> #######################################
>>> # set includes ( is this needed ? )
>>> include_directories( ${INCFOLDERS})
>>> set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)
>>>
>>>
>>> #######################################
>>> # set library target
>>>
>>> #if(APPLE OR MSVC)
>>>
>>> set(target catsmat)
>>>
>>> # I don't know why these if statements are included they seem to do nothing '
>>> #else(APPLE OR MSVC)
>>> # set(target catsmat)
>>> #endif(APPLE OR MSVC)
>>>
>>> ##if(MSVC)
>>> ## enable_language(RC)
>>> ## set(LIBCONTENT ${CORESRC} ${COREH}
>>> ${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
>>> ##else(MSVC)
>>> ## set(LIBCONTENT ${CORESRC} ${COREH})
>>> ##endif(MSVC)
>>>
>>> add_executable(${target} ${SRC} )
>>>
>>> #### add include directories
>>> include_directories ( ${INCFOLDERS} )
>>>
>>> ###############  Targeted Libraries ###########
>>>
>>> TARGET_LINK_LIBRARIES(${target} gtest)
>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
>>> TARGET_LINK_LIBRARIES(${target} libmusicxml2)
>>> TARGET_LINK_LIBRARIES(${target} libIMUSANT)
>>>
>>>
>>> set_target_properties (${target} PROPERTIES
>>> FRAMEWORK TRUE
>>> VERSION ${VERSION}
>>>                         C_STANDARD 99
>>> FRAMEWORK_VERSION ${VERSION}
>>> PUBLIC_HEADER "${COREH}"
>>> DEFINE_SYMBOL LIBMUSICXML_EXPORTS
>>> MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
>>> MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
>>> )
>>>
>>>
>>>
>>> #######################################
>>> # install setup
>>> if(NOT APPLE)
>>> install ( TARGETS ${target} ${TOOLS}
>>> RUNTIME DESTINATION bin
>>>     LIBRARY DESTINATION lib
>>>     ARCHIVE DESTINATION lib
>>>     FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
>>>     PUBLIC_HEADER DESTINATION include/libmusicxml
>>> )
>>> endif(NOT APPLE)
>>>
>>>
>>>
>>>
>>>
>>>
>> Hello Sean,
>>
>> Could you try adding a 'project(CATSTMAT)' call right at the top of your
>> CMakeLists.txt? As well as setting a name for the project, this call
>> also enables languages by default.
>>
>> HTH,
>> Micha
>>
>>
>>
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake
>
>
Hi Sean,

I'm also a bit confused as you seem to set 'C_STANDARD 99' as a property
for the target, as well as 'set(CMAKE_CXX_STANDARD 14)'. I don't know if
these two settings interfere with each other. Could you remove one of
the two as an experiment?

Regards,
Micha


--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

signature.asc (537 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: cmake create executable Undefined symbols for architecture x86_64:

Sean Wayland
Hi Micha,
Thanks very much for the email. That seemed to make a small
difference! With both those lines commented out these errors are
generated ( below my email ) .
I still have included
project(CATSMAT)
at the top line of the cmake file in the catsmat directory

I tried commenting out each of those language type definitions
separately but it didn't seem to help.
The code compiles under xcode. Those language types ( C++14) are
specified in Xcode so I was trying to find a way to copy what is in
xcode.

Is there a maximum number of "errors" before the clion compiler will
spit the dummy ?

Another executable will compile with lots and lots of warnings but no "errors"

I don't know much about C++ unfortunately. These errors look like
simple errors which I could see might be generated if the syntax of
the language had changed slightly from one version to the next ..

Thanks for you help!

Sean


/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
error: ISO C++ forbids forward references to 'enum' types

        enum direction : int { descending=-1, repeat=0, ascending = 1,
vertical_bottomtotop };


/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
error: expected '(' for function-style cast or type construction

        enum direction : int { descending=-1, repeat=0, ascending = 1,
vertical_bottomtotop };

                         ~~~ ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
error: field has incomplete type 'enum direction'

        enum direction : int { descending=-1, repeat=0, ascending = 1,
vertical_bottomtotop };


/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
error: ISO C++ forbids forward references to 'enum' types

        enum direction : int { descending=-1, repeat=0, ascending = 1,
vertical_bottomtotop };

             ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
error: expected '(' for function-style cast or type construction

        enum direction : int { descending=-1, repeat=0, ascending = 1,
vertical_bottomtotop };

                         ~~~ ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
error: field has incomplete type 'enum direction'

        enum direction : int { descending=-1, repeat=0, ascending = 1,
vertical_bottomtotop };

                       ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
note: forward declaration of 'IMUSANT::direction'

        enum direction : int { descending=-1, repeat=0, ascending = 1,
vertical_bottomtotop };

             ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
error: ISO C++ forbids forward references to 'enum' types

        enum basic : int { unison = 0, second=1, third, fourth, fifth,
sixth, seventh };

             ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
error: expected '(' for function-style cast or type construction

        enum basic : int { unison = 0, second=1, third, fourth, fifth,
sixth, seventh };

                     ~~~ ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
error: field has incomplete type 'enum basic'

        enum basic : int { unison = 0, second=1, third, fourth, fifth,
sixth, seventh };


sers/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
error: ISO C++ forbids forward references to 'enum' types

        enum basic : int { unison = 0, second=1, third, fourth, fifth,
sixth, seventh };

             ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
error: expected '(' for function-style cast or type construction

        enum basic : int { unison = 0, second=1, third, fourth, fifth,
sixth, seventh };

                     ~~~ ^

/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
error: field has incomplete type 'enum basic'

        enum basic : int { unison = 0, second=1, third, fourth, fifth,
sixth, seventh };




/Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/FileProcessing/inc/IMUSANT_processing.h:61:35:
error: expected ';' at end of declaration list

        const char * what () const noexcept

                                  ^

                   ^



22 warnings and 12 errors generated.

make[3]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/__/Application/CATSMAT_main.cpp.o]
Error 1

make[2]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/all] Error 2

make[1]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/rule] Error 2

On Thu, Jul 6, 2017 at 3:12 PM, Micha Hergarden
<[hidden email]> wrote:

> On 06-07-17 15:59, Sean Wayland wrote:
>> Hi Micha,
>> Thanks very much I tried that .. I added it to the application
>> directory cmakelists.txt file . Same issue .. It's already in the top
>> level cmake file which looks like this ..
>>
>> project(CATSMAT)
>> cmake_minimum_required(VERSION 3.6.3)
>>
>>
>> if (APPLE)
>>
>>     set(CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>> endif (APPLE)
>>
>>
>> include_directories("catsmat/libIMUSANT")
>>
>> add_subdirectory (catsmat/googletest-master/googletest)
>> add_subdirectory (catsmat/libMusicXMLv3/libmusicxml-3.00-src/cmake)
>> add_subdirectory (catsmat/libIMUSANT/cmake)
>> add_subdirectory (catsmat/libIMUSANT_Tests/cmake)
>> add_subdirectory (catsmat/catsmat/cmake)
>>
>> set(CMAKE_CXX_STANDARD 14)
>>
>> On Thu, Jul 6, 2017 at 2:48 AM, Micha Hergarden
>> <[hidden email]> wrote:
>>> On 05-07-17 22:50, Sean Wayland wrote:
>>>> I am attempting to write a cmakelists.txt file for an application.
>>>> The application has a couple of dependencies.
>>>> I have been able to build targets for the dependencies but when I try
>>>> and add an executable for the main application I encounter this error.
>>>>
>>>> Undefined symbols for architecture x86_64:
>>>>
>>>>   "_main", referenced from:
>>>>
>>>>      implicit entry/start for main executable
>>>>
>>>> ld: symbol(s) not found for architecture x86_64
>>>>
>>>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>>>>
>>>>
>>>> Googling the error and looking on stack exchange suggests that I don't
>>>> have a main function in the implicit entry/start .
>>>>
>>>> Where does it look for this function ?
>>>> Does that file need to be first in the list of sources ?
>>>>
>>>>
>>>>
>>>> This function is included here :
>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>>
>>>> My cmake file is below.
>>>>
>>>> Any advice would be appreciated I have been stuck here for a while!
>>>>
>>>> Best Sean
>>>>
>>>>
>>>> #######################################
>>>> # CMAKE CATSTMAT
>>>> #######################################
>>>> cmake_minimum_required(VERSION 3.6.3)
>>>> set(CMAKE_CXX_STANDARD 14)
>>>> if(CMAKE_CONFIGURATION_TYPES)
>>>> set(CMAKE_CONFIGURATION_TYPES Debug Release)
>>>> endif()
>>>>
>>>> if(UNIX)
>>>> add_definitions(-Wall -DGCC)
>>>> endif(UNIX)
>>>>
>>>> ##### RPATH SETTING #####
>>>> set(CMAKE_MACOSX_RPATH 1)
>>>>
>>>> #if(APPLE)
>>>> # set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
>>>> # if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
>>>> # elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
>>>> # elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
>>>> # else ()
>>>> # set (CMAKE_OSX_SYSROOT "macosx10.7")
>>>> # endif ()
>>>> # set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>>> #endif(APPLE)
>>>> #
>>>> #if(WIN32)
>>>> # add_definitions(-DWINVER=0x0400 -DWIN32)
>>>> # if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>> #  add_definitions(-DVC6)
>>>> # elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
>>>> #  add_definitions(-DVC2005)
>>>> # endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>> #endif(WIN32)
>>>>
>>>> ###############  BOOST LIBRARIES ###########
>>>> if (APPLE)
>>>> set(BOOST_ROOT "/usr/local/boost")
>>>> set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
>>>> set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)
>>>>
>>>> else (NOT APPLE)
>>>> set(BOOST_ROOT "C:/local/boost_1_58_0")
>>>> set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>> set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>> endif (APPLE)
>>>>
>>>> FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
>>>> INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
>>>>
>>>>
>>>> #######################################
>>>> # set directories, src and headers.
>>>>
>>>> set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
>>>> set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>> set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
>>>> set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
>>>> set (GOOGLE_TEST_INC_DIR
>>>> ${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
>>>> set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>>
>>>>
>>>> set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)
>>>>
>>>>
>>>> #### SET SOURCES EXPLICITLY #####
>>>>
>>>> set(SRC
>>>>
>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp
>>>>
>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>> ${CATSMAT_DIR}/Application/CATSMAT_menu.cpp
>>>>
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp
>>>>
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp
>>>>
>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp
>>>>
>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp
>>>>
>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp
>>>>
>>>>
>>>>
>>>>
>>>> )
>>>>
>>>>
>>>>
>>>>
>>>> # old version of adding source code
>>>>
>>>> #set (SRCFOLDERS
>>>>
>>>>
>>>> #       ${CATSMAT_DIR}/Analysis/src
>>>> #       ${CATSMAT_DIR}/CounterpointAnalysis/src
>>>> #       ${CATSMAT_DIR}/GeneralAnalysis/src
>>>> #       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>> #       ${CATSMAT_DIR}/Application
>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>> #       ${CATSMAT_DIR}/Segmentation
>>>> #       ${CATSMAT_DIR}/Utilities
>>>> #)
>>>>
>>>>
>>>> set (INCFOLDERS
>>>> ${libIMUSANT_DIR}
>>>> ${CATSMAT_DIR}/Analysis/inc
>>>>         ${CATSMAT_DIR}/Application
>>>>         ${CATSMAT_DIR}/CounterpointAnalysis/inc
>>>>         ${CATSMAT_DIR}/GeneralAnalysis/inc
>>>>         ${CATSMAT_DIR}/Segmentation
>>>>         ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
>>>>         ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
>>>>         ${CATSMAT_DIR}/Utilities
>>>>         ${libIMUSANT_DIR}/DomainObjects/inc
>>>> ${libIMUSANT_DIR}/Utilities/inc
>>>> ${libIMUSANT_DIR}/FileProcessing/inc
>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3
>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
>>>>         ${IMUSANT_DIR}/DomainObjects/inc
>>>> ${IMUSANT_DIR}/Converters/MusicXML_v3
>>>>         ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>> ${IMUSANT_DIR}/Converters/Shared/inc
>>>>         ${IMUSANT_DIR}/FileProcessing/inc
>>>>         ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
>>>>         ${IMUSANT_DIR}/Utilities/inc
>>>>         ${SUFFIXTREE_DIR}
>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
>>>>         ${LOKI_DIR}
>>>> ${SUFFIX_TREE_DIR}
>>>> ${GOOGLE_TEST_INC_DIR}
>>>> )
>>>>
>>>>
>>>> #foreach(folder ${SRCFOLDERS})
>>>> # set(SRC ${SRC} "${folder}/*.cpp") # add source files
>>>> #endforeach(folder)
>>>> #file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
>>>>
>>>>
>>>>
>>>> ## is this necessary I think target link directories might do the job ?
>>>>
>>>> foreach(folder ${INCFOLDERS})
>>>> set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
>>>> set(INCL ${INCL} "${folder}") # add include folders
>>>> endforeach(folder)
>>>>  file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})
>>>>
>>>>
>>>> #######################################
>>>> # set includes ( is this needed ? )
>>>> include_directories( ${INCFOLDERS})
>>>> set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)
>>>>
>>>>
>>>> #######################################
>>>> # set library target
>>>>
>>>> #if(APPLE OR MSVC)
>>>>
>>>> set(target catsmat)
>>>>
>>>> # I don't know why these if statements are included they seem to do nothing '
>>>> #else(APPLE OR MSVC)
>>>> # set(target catsmat)
>>>> #endif(APPLE OR MSVC)
>>>>
>>>> ##if(MSVC)
>>>> ## enable_language(RC)
>>>> ## set(LIBCONTENT ${CORESRC} ${COREH}
>>>> ${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
>>>> ##else(MSVC)
>>>> ## set(LIBCONTENT ${CORESRC} ${COREH})
>>>> ##endif(MSVC)
>>>>
>>>> add_executable(${target} ${SRC} )
>>>>
>>>> #### add include directories
>>>> include_directories ( ${INCFOLDERS} )
>>>>
>>>> ###############  Targeted Libraries ###########
>>>>
>>>> TARGET_LINK_LIBRARIES(${target} gtest)
>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
>>>> TARGET_LINK_LIBRARIES(${target} libmusicxml2)
>>>> TARGET_LINK_LIBRARIES(${target} libIMUSANT)
>>>>
>>>>
>>>> set_target_properties (${target} PROPERTIES
>>>> FRAMEWORK TRUE
>>>> VERSION ${VERSION}
>>>>                         C_STANDARD 99
>>>> FRAMEWORK_VERSION ${VERSION}
>>>> PUBLIC_HEADER "${COREH}"
>>>> DEFINE_SYMBOL LIBMUSICXML_EXPORTS
>>>> MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
>>>> MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
>>>> )
>>>>
>>>>
>>>>
>>>> #######################################
>>>> # install setup
>>>> if(NOT APPLE)
>>>> install ( TARGETS ${target} ${TOOLS}
>>>> RUNTIME DESTINATION bin
>>>>     LIBRARY DESTINATION lib
>>>>     ARCHIVE DESTINATION lib
>>>>     FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
>>>>     PUBLIC_HEADER DESTINATION include/libmusicxml
>>>> )
>>>> endif(NOT APPLE)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> Hello Sean,
>>>
>>> Could you try adding a 'project(CATSTMAT)' call right at the top of your
>>> CMakeLists.txt? As well as setting a name for the project, this call
>>> also enables languages by default.
>>>
>>> HTH,
>>> Micha
>>>
>>>
>>>
>>> --
>>>
>>> Powered by www.kitware.com
>>>
>>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>>
>>> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>>>
>>> CMake Support: http://cmake.org/cmake/help/support.html
>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>
>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://public.kitware.com/mailman/listinfo/cmake
>>
>>
> Hi Sean,
>
> I'm also a bit confused as you seem to set 'C_STANDARD 99' as a property
> for the target, as well as 'set(CMAKE_CXX_STANDARD 14)'. I don't know if
> these two settings interfere with each other. Could you remove one of
> the two as an experiment?
>
> Regards,
> Micha
>



--
www.seanwayland.com

Sean Wayland

licensed real estate salesperson
phone: 3475231455
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: cmake create executable Undefined symbols for architecture x86_64:

Micha Hergarden
On 07-07-17 05:14, Sean Wayland wrote:

> Hi Micha,
> Thanks very much for the email. That seemed to make a small
> difference! With both those lines commented out these errors are
> generated ( below my email ) .
> I still have included
> project(CATSMAT)
> at the top line of the cmake file in the catsmat directory
>
> I tried commenting out each of those language type definitions
> separately but it didn't seem to help.
> The code compiles under xcode. Those language types ( C++14) are
> specified in Xcode so I was trying to find a way to copy what is in
> xcode.
>
> Is there a maximum number of "errors" before the clion compiler will
> spit the dummy ?
>
> Another executable will compile with lots and lots of warnings but no "errors"
>
> I don't know much about C++ unfortunately. These errors look like
> simple errors which I could see might be generated if the syntax of
> the language had changed slightly from one version to the next ..
>
> Thanks for you help!
>
> Sean
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
> error: expected '(' for function-style cast or type construction
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>                          ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
> error: field has incomplete type 'enum direction'
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
> error: expected '(' for function-style cast or type construction
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>                          ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
> error: field has incomplete type 'enum direction'
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>                        ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
> note: forward declaration of 'IMUSANT::direction'
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
> error: expected '(' for function-style cast or type construction
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>                      ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
> error: field has incomplete type 'enum basic'
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>
> sers/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
> error: expected '(' for function-style cast or type construction
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>                      ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
> error: field has incomplete type 'enum basic'
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/FileProcessing/inc/IMUSANT_processing.h:61:35:
> error: expected ';' at end of declaration list
>
>         const char * what () const noexcept
>
>                                   ^
>
>                    ^
>
>
>
> 22 warnings and 12 errors generated.
>
> make[3]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/__/Application/CATSMAT_main.cpp.o]
> Error 1
>
> make[2]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/all] Error 2
>
> make[1]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/rule] Error 2
>
> On Thu, Jul 6, 2017 at 3:12 PM, Micha Hergarden
> <[hidden email]> wrote:
>> On 06-07-17 15:59, Sean Wayland wrote:
>>> Hi Micha,
>>> Thanks very much I tried that .. I added it to the application
>>> directory cmakelists.txt file . Same issue .. It's already in the top
>>> level cmake file which looks like this ..
>>>
>>> project(CATSMAT)
>>> cmake_minimum_required(VERSION 3.6.3)
>>>
>>>
>>> if (APPLE)
>>>
>>>     set(CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>> endif (APPLE)
>>>
>>>
>>> include_directories("catsmat/libIMUSANT")
>>>
>>> add_subdirectory (catsmat/googletest-master/googletest)
>>> add_subdirectory (catsmat/libMusicXMLv3/libmusicxml-3.00-src/cmake)
>>> add_subdirectory (catsmat/libIMUSANT/cmake)
>>> add_subdirectory (catsmat/libIMUSANT_Tests/cmake)
>>> add_subdirectory (catsmat/catsmat/cmake)
>>>
>>> set(CMAKE_CXX_STANDARD 14)
>>>
>>> On Thu, Jul 6, 2017 at 2:48 AM, Micha Hergarden
>>> <[hidden email]> wrote:
>>>> On 05-07-17 22:50, Sean Wayland wrote:
>>>>> I am attempting to write a cmakelists.txt file for an application.
>>>>> The application has a couple of dependencies.
>>>>> I have been able to build targets for the dependencies but when I try
>>>>> and add an executable for the main application I encounter this error.
>>>>>
>>>>> Undefined symbols for architecture x86_64:
>>>>>
>>>>>   "_main", referenced from:
>>>>>
>>>>>      implicit entry/start for main executable
>>>>>
>>>>> ld: symbol(s) not found for architecture x86_64
>>>>>
>>>>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>>>>>
>>>>>
>>>>> Googling the error and looking on stack exchange suggests that I don't
>>>>> have a main function in the implicit entry/start .
>>>>>
>>>>> Where does it look for this function ?
>>>>> Does that file need to be first in the list of sources ?
>>>>>
>>>>>
>>>>>
>>>>> This function is included here :
>>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>>>
>>>>> My cmake file is below.
>>>>>
>>>>> Any advice would be appreciated I have been stuck here for a while!
>>>>>
>>>>> Best Sean
>>>>>
>>>>>
>>>>> #######################################
>>>>> # CMAKE CATSTMAT
>>>>> #######################################
>>>>> cmake_minimum_required(VERSION 3.6.3)
>>>>> set(CMAKE_CXX_STANDARD 14)
>>>>> if(CMAKE_CONFIGURATION_TYPES)
>>>>> set(CMAKE_CONFIGURATION_TYPES Debug Release)
>>>>> endif()
>>>>>
>>>>> if(UNIX)
>>>>> add_definitions(-Wall -DGCC)
>>>>> endif(UNIX)
>>>>>
>>>>> ##### RPATH SETTING #####
>>>>> set(CMAKE_MACOSX_RPATH 1)
>>>>>
>>>>> #if(APPLE)
>>>>> # set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
>>>>> # if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
>>>>> # elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
>>>>> # elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
>>>>> # else ()
>>>>> # set (CMAKE_OSX_SYSROOT "macosx10.7")
>>>>> # endif ()
>>>>> # set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>>>> #endif(APPLE)
>>>>> #
>>>>> #if(WIN32)
>>>>> # add_definitions(-DWINVER=0x0400 -DWIN32)
>>>>> # if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>>> #  add_definitions(-DVC6)
>>>>> # elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
>>>>> #  add_definitions(-DVC2005)
>>>>> # endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>>> #endif(WIN32)
>>>>>
>>>>> ###############  BOOST LIBRARIES ###########
>>>>> if (APPLE)
>>>>> set(BOOST_ROOT "/usr/local/boost")
>>>>> set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
>>>>> set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)
>>>>>
>>>>> else (NOT APPLE)
>>>>> set(BOOST_ROOT "C:/local/boost_1_58_0")
>>>>> set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>>> set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>>> endif (APPLE)
>>>>>
>>>>> FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
>>>>> INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
>>>>>
>>>>>
>>>>> #######################################
>>>>> # set directories, src and headers.
>>>>>
>>>>> set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
>>>>> set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>>> set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
>>>>> set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
>>>>> set (GOOGLE_TEST_INC_DIR
>>>>> ${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
>>>>> set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>>>
>>>>>
>>>>> set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)
>>>>>
>>>>>
>>>>> #### SET SOURCES EXPLICITLY #####
>>>>>
>>>>> set(SRC
>>>>>
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>>> ${CATSMAT_DIR}/Application/CATSMAT_menu.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> )
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> # old version of adding source code
>>>>>
>>>>> #set (SRCFOLDERS
>>>>>
>>>>>
>>>>> #       ${CATSMAT_DIR}/Analysis/src
>>>>> #       ${CATSMAT_DIR}/CounterpointAnalysis/src
>>>>> #       ${CATSMAT_DIR}/GeneralAnalysis/src
>>>>> #       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
>>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>>> #       ${CATSMAT_DIR}/Application
>>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>>> #       ${CATSMAT_DIR}/Segmentation
>>>>> #       ${CATSMAT_DIR}/Utilities
>>>>> #)
>>>>>
>>>>>
>>>>> set (INCFOLDERS
>>>>> ${libIMUSANT_DIR}
>>>>> ${CATSMAT_DIR}/Analysis/inc
>>>>>         ${CATSMAT_DIR}/Application
>>>>>         ${CATSMAT_DIR}/CounterpointAnalysis/inc
>>>>>         ${CATSMAT_DIR}/GeneralAnalysis/inc
>>>>>         ${CATSMAT_DIR}/Segmentation
>>>>>         ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
>>>>>         ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
>>>>>         ${CATSMAT_DIR}/Utilities
>>>>>         ${libIMUSANT_DIR}/DomainObjects/inc
>>>>> ${libIMUSANT_DIR}/Utilities/inc
>>>>> ${libIMUSANT_DIR}/FileProcessing/inc
>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3
>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
>>>>>         ${IMUSANT_DIR}/DomainObjects/inc
>>>>> ${IMUSANT_DIR}/Converters/MusicXML_v3
>>>>>         ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>>> ${IMUSANT_DIR}/Converters/Shared/inc
>>>>>         ${IMUSANT_DIR}/FileProcessing/inc
>>>>>         ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
>>>>>         ${IMUSANT_DIR}/Utilities/inc
>>>>>         ${SUFFIXTREE_DIR}
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
>>>>>         ${LOKI_DIR}
>>>>> ${SUFFIX_TREE_DIR}
>>>>> ${GOOGLE_TEST_INC_DIR}
>>>>> )
>>>>>
>>>>>
>>>>> #foreach(folder ${SRCFOLDERS})
>>>>> # set(SRC ${SRC} "${folder}/*.cpp") # add source files
>>>>> #endforeach(folder)
>>>>> #file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
>>>>>
>>>>>
>>>>>
>>>>> ## is this necessary I think target link directories might do the job ?
>>>>>
>>>>> foreach(folder ${INCFOLDERS})
>>>>> set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
>>>>> set(INCL ${INCL} "${folder}") # add include folders
>>>>> endforeach(folder)
>>>>>  file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})
>>>>>
>>>>>
>>>>> #######################################
>>>>> # set includes ( is this needed ? )
>>>>> include_directories( ${INCFOLDERS})
>>>>> set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)
>>>>>
>>>>>
>>>>> #######################################
>>>>> # set library target
>>>>>
>>>>> #if(APPLE OR MSVC)
>>>>>
>>>>> set(target catsmat)
>>>>>
>>>>> # I don't know why these if statements are included they seem to do nothing '
>>>>> #else(APPLE OR MSVC)
>>>>> # set(target catsmat)
>>>>> #endif(APPLE OR MSVC)
>>>>>
>>>>> ##if(MSVC)
>>>>> ## enable_language(RC)
>>>>> ## set(LIBCONTENT ${CORESRC} ${COREH}
>>>>> ${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
>>>>> ##else(MSVC)
>>>>> ## set(LIBCONTENT ${CORESRC} ${COREH})
>>>>> ##endif(MSVC)
>>>>>
>>>>> add_executable(${target} ${SRC} )
>>>>>
>>>>> #### add include directories
>>>>> include_directories ( ${INCFOLDERS} )
>>>>>
>>>>> ###############  Targeted Libraries ###########
>>>>>
>>>>> TARGET_LINK_LIBRARIES(${target} gtest)
>>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
>>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
>>>>> TARGET_LINK_LIBRARIES(${target} libmusicxml2)
>>>>> TARGET_LINK_LIBRARIES(${target} libIMUSANT)
>>>>>
>>>>>
>>>>> set_target_properties (${target} PROPERTIES
>>>>> FRAMEWORK TRUE
>>>>> VERSION ${VERSION}
>>>>>                         C_STANDARD 99
>>>>> FRAMEWORK_VERSION ${VERSION}
>>>>> PUBLIC_HEADER "${COREH}"
>>>>> DEFINE_SYMBOL LIBMUSICXML_EXPORTS
>>>>> MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
>>>>> MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
>>>>> )
>>>>>
>>>>>
>>>>>
>>>>> #######################################
>>>>> # install setup
>>>>> if(NOT APPLE)
>>>>> install ( TARGETS ${target} ${TOOLS}
>>>>> RUNTIME DESTINATION bin
>>>>>     LIBRARY DESTINATION lib
>>>>>     ARCHIVE DESTINATION lib
>>>>>     FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
>>>>>     PUBLIC_HEADER DESTINATION include/libmusicxml
>>>>> )
>>>>> endif(NOT APPLE)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Hello Sean,
>>>>
>>>> Could you try adding a 'project(CATSTMAT)' call right at the top of your
>>>> CMakeLists.txt? As well as setting a name for the project, this call
>>>> also enables languages by default.
>>>>
>>>> HTH,
>>>> Micha
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Powered by www.kitware.com
>>>>
>>>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>>>
>>>> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>>>>
>>>> CMake Support: http://cmake.org/cmake/help/support.html
>>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>>
>>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://public.kitware.com/mailman/listinfo/cmake
>>>
>> Hi Sean,
>>
>> I'm also a bit confused as you seem to set 'C_STANDARD 99' as a property
>> for the target, as well as 'set(CMAKE_CXX_STANDARD 14)'. I don't know if
>> these two settings interfere with each other. Could you remove one of
>> the two as an experiment?
>>
>> Regards,
>> Micha
>>
>
>
Hello Sean,

Unfortunately I don't have experience with the clion compiler, so I
can't help you with that. Is there any way I could access this project
to see if I can compile it? Does a simple 'hello world' project compile
at all?

Regards,
Micha


--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

signature.asc (537 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [DKIM] Re: cmake create executable Undefined symbols for architecture x86_64:

Zakrzewski, Jakub

________________________________________
From: CMake <[hidden email]> on behalf of Micha Hergarden <[hidden email]>
Sent: 10 July 2017 21:22
To: [hidden email]
Cc: [hidden email]
Subject: [DKIM] Re: [CMake] cmake create executable Undefined symbols for architecture x86_64:

On 07-07-17 05:14, Sean Wayland wrote:

> Hi Micha,
> Thanks very much for the email. That seemed to make a small
> difference! With both those lines commented out these errors are
> generated ( below my email ) .
> I still have included
> project(CATSMAT)
> at the top line of the cmake file in the catsmat directory
>
> I tried commenting out each of those language type definitions
> separately but it didn't seem to help.
> The code compiles under xcode. Those language types ( C++14) are
> specified in Xcode so I was trying to find a way to copy what is in
> xcode.
>
> Is there a maximum number of "errors" before the clion compiler will
> spit the dummy ?
>
> Another executable will compile with lots and lots of warnings but no "errors"
>
> I don't know much about C++ unfortunately. These errors look like
> simple errors which I could see might be generated if the syntax of
> the language had changed slightly from one version to the next ..
>
> Thanks for you help!
>
> Sean
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
> error: expected '(' for function-style cast or type construction
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>                          ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
> error: field has incomplete type 'enum direction'
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
> error: expected '(' for function-style cast or type construction
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>                          ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
> error: field has incomplete type 'enum direction'
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>                        ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
> note: forward declaration of 'IMUSANT::direction'
>
>         enum direction : int { descending=-1, repeat=0, ascending = 1,
> vertical_bottomtotop };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
> error: expected '(' for function-style cast or type construction
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>                      ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
> error: field has incomplete type 'enum basic'
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>
> sers/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
> error: ISO C++ forbids forward references to 'enum' types
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>              ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
> error: expected '(' for function-style cast or type construction
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>                      ~~~ ^
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
> error: field has incomplete type 'enum basic'
>
>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
> sixth, seventh };
>
>
>
>
> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/FileProcessing/inc/IMUSANT_processing.h:61:35:
> error: expected ';' at end of declaration list
>
>         const char * what () const noexcept
>
>                                   ^
>
>                    ^
>
>
>
> 22 warnings and 12 errors generated.
>
> make[3]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/__/Application/CATSMAT_main.cpp.o]
> Error 1
>
> make[2]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/all] Error 2
>
> make[1]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/rule] Error 2
>
> On Thu, Jul 6, 2017 at 3:12 PM, Micha Hergarden
> <[hidden email]> wrote:
>> On 06-07-17 15:59, Sean Wayland wrote:
>>> Hi Micha,
>>> Thanks very much I tried that .. I added it to the application
>>> directory cmakelists.txt file . Same issue .. It's already in the top
>>> level cmake file which looks like this ..
>>>
>>> project(CATSMAT)
>>> cmake_minimum_required(VERSION 3.6.3)
>>>
>>>
>>> if (APPLE)
>>>
>>>     set(CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>> endif (APPLE)
>>>
>>>
>>> include_directories("catsmat/libIMUSANT")
>>>
>>> add_subdirectory (catsmat/googletest-master/googletest)
>>> add_subdirectory (catsmat/libMusicXMLv3/libmusicxml-3.00-src/cmake)
>>> add_subdirectory (catsmat/libIMUSANT/cmake)
>>> add_subdirectory (catsmat/libIMUSANT_Tests/cmake)
>>> add_subdirectory (catsmat/catsmat/cmake)
>>>
>>> set(CMAKE_CXX_STANDARD 14)
>>>
>>> On Thu, Jul 6, 2017 at 2:48 AM, Micha Hergarden
>>> <[hidden email]> wrote:
>>>> On 05-07-17 22:50, Sean Wayland wrote:
>>>>> I am attempting to write a cmakelists.txt file for an application.
>>>>> The application has a couple of dependencies.
>>>>> I have been able to build targets for the dependencies but when I try
>>>>> and add an executable for the main application I encounter this error.
>>>>>
>>>>> Undefined symbols for architecture x86_64:
>>>>>
>>>>>   "_main", referenced from:
>>>>>
>>>>>      implicit entry/start for main executable
>>>>>
>>>>> ld: symbol(s) not found for architecture x86_64
>>>>>
>>>>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>>>>>
>>>>>
>>>>> Googling the error and looking on stack exchange suggests that I don't
>>>>> have a main function in the implicit entry/start .
>>>>>
>>>>> Where does it look for this function ?
>>>>> Does that file need to be first in the list of sources ?
>>>>>
>>>>>
>>>>>
>>>>> This function is included here :
>>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>>>
>>>>> My cmake file is below.
>>>>>
>>>>> Any advice would be appreciated I have been stuck here for a while!
>>>>>
>>>>> Best Sean
>>>>>
>>>>>
>>>>> #######################################
>>>>> # CMAKE CATSTMAT
>>>>> #######################################
>>>>> cmake_minimum_required(VERSION 3.6.3)
>>>>> set(CMAKE_CXX_STANDARD 14)
>>>>> if(CMAKE_CONFIGURATION_TYPES)
>>>>> set(CMAKE_CONFIGURATION_TYPES Debug Release)
>>>>> endif()
>>>>>
>>>>> if(UNIX)
>>>>> add_definitions(-Wall -DGCC)
>>>>> endif(UNIX)
>>>>>
>>>>> ##### RPATH SETTING #####
>>>>> set(CMAKE_MACOSX_RPATH 1)
>>>>>
>>>>> #if(APPLE)
>>>>> # set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
>>>>> # if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
>>>>> # elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
>>>>> # elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
>>>>> # else ()
>>>>> # set (CMAKE_OSX_SYSROOT "macosx10.7")
>>>>> # endif ()
>>>>> # set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>>>> #endif(APPLE)
>>>>> #
>>>>> #if(WIN32)
>>>>> # add_definitions(-DWINVER=0x0400 -DWIN32)
>>>>> # if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>>> #  add_definitions(-DVC6)
>>>>> # elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
>>>>> #  add_definitions(-DVC2005)
>>>>> # endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>>> #endif(WIN32)
>>>>>
>>>>> ###############  BOOST LIBRARIES ###########
>>>>> if (APPLE)
>>>>> set(BOOST_ROOT "/usr/local/boost")
>>>>> set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
>>>>> set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)
>>>>>
>>>>> else (NOT APPLE)
>>>>> set(BOOST_ROOT "C:/local/boost_1_58_0")
>>>>> set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>>> set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>>> endif (APPLE)
>>>>>
>>>>> FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
>>>>> INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
>>>>>
>>>>>
>>>>> #######################################
>>>>> # set directories, src and headers.
>>>>>
>>>>> set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
>>>>> set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>>> set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
>>>>> set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
>>>>> set (GOOGLE_TEST_INC_DIR
>>>>> ${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
>>>>> set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>>>
>>>>>
>>>>> set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)
>>>>>
>>>>>
>>>>> #### SET SOURCES EXPLICITLY #####
>>>>>
>>>>> set(SRC
>>>>>
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>>> ${CATSMAT_DIR}/Application/CATSMAT_menu.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp
>>>>>
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> )
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> # old version of adding source code
>>>>>
>>>>> #set (SRCFOLDERS
>>>>>
>>>>>
>>>>> #       ${CATSMAT_DIR}/Analysis/src
>>>>> #       ${CATSMAT_DIR}/CounterpointAnalysis/src
>>>>> #       ${CATSMAT_DIR}/GeneralAnalysis/src
>>>>> #       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
>>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>>> #       ${CATSMAT_DIR}/Application
>>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>>> #       ${CATSMAT_DIR}/Segmentation
>>>>> #       ${CATSMAT_DIR}/Utilities
>>>>> #)
>>>>>
>>>>>
>>>>> set (INCFOLDERS
>>>>> ${libIMUSANT_DIR}
>>>>> ${CATSMAT_DIR}/Analysis/inc
>>>>>         ${CATSMAT_DIR}/Application
>>>>>         ${CATSMAT_DIR}/CounterpointAnalysis/inc
>>>>>         ${CATSMAT_DIR}/GeneralAnalysis/inc
>>>>>         ${CATSMAT_DIR}/Segmentation
>>>>>         ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
>>>>>         ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
>>>>>         ${CATSMAT_DIR}/Utilities
>>>>>         ${libIMUSANT_DIR}/DomainObjects/inc
>>>>> ${libIMUSANT_DIR}/Utilities/inc
>>>>> ${libIMUSANT_DIR}/FileProcessing/inc
>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3
>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
>>>>>         ${IMUSANT_DIR}/DomainObjects/inc
>>>>> ${IMUSANT_DIR}/Converters/MusicXML_v3
>>>>>         ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>>> ${IMUSANT_DIR}/Converters/Shared/inc
>>>>>         ${IMUSANT_DIR}/FileProcessing/inc
>>>>>         ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
>>>>>         ${IMUSANT_DIR}/Utilities/inc
>>>>>         ${SUFFIXTREE_DIR}
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
>>>>>         ${LOKI_DIR}
>>>>> ${SUFFIX_TREE_DIR}
>>>>> ${GOOGLE_TEST_INC_DIR}
>>>>> )
>>>>>
>>>>>
>>>>> #foreach(folder ${SRCFOLDERS})
>>>>> # set(SRC ${SRC} "${folder}/*.cpp") # add source files
>>>>> #endforeach(folder)
>>>>> #file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
>>>>>
>>>>>
>>>>>
>>>>> ## is this necessary I think target link directories might do the job ?
>>>>>
>>>>> foreach(folder ${INCFOLDERS})
>>>>> set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
>>>>> set(INCL ${INCL} "${folder}") # add include folders
>>>>> endforeach(folder)
>>>>>  file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})
>>>>>
>>>>>
>>>>> #######################################
>>>>> # set includes ( is this needed ? )
>>>>> include_directories( ${INCFOLDERS})
>>>>> set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)
>>>>>
>>>>>
>>>>> #######################################
>>>>> # set library target
>>>>>
>>>>> #if(APPLE OR MSVC)
>>>>>
>>>>> set(target catsmat)
>>>>>
>>>>> # I don't know why these if statements are included they seem to do nothing '
>>>>> #else(APPLE OR MSVC)
>>>>> # set(target catsmat)
>>>>> #endif(APPLE OR MSVC)
>>>>>
>>>>> ##if(MSVC)
>>>>> ## enable_language(RC)
>>>>> ## set(LIBCONTENT ${CORESRC} ${COREH}
>>>>> ${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
>>>>> ##else(MSVC)
>>>>> ## set(LIBCONTENT ${CORESRC} ${COREH})
>>>>> ##endif(MSVC)
>>>>>
>>>>> add_executable(${target} ${SRC} )
>>>>>
>>>>> #### add include directories
>>>>> include_directories ( ${INCFOLDERS} )
>>>>>
>>>>> ###############  Targeted Libraries ###########
>>>>>
>>>>> TARGET_LINK_LIBRARIES(${target} gtest)
>>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
>>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
>>>>> TARGET_LINK_LIBRARIES(${target} libmusicxml2)
>>>>> TARGET_LINK_LIBRARIES(${target} libIMUSANT)
>>>>>
>>>>>
>>>>> set_target_properties (${target} PROPERTIES
>>>>> FRAMEWORK TRUE
>>>>> VERSION ${VERSION}
>>>>>                         C_STANDARD 99
>>>>> FRAMEWORK_VERSION ${VERSION}
>>>>> PUBLIC_HEADER "${COREH}"
>>>>> DEFINE_SYMBOL LIBMUSICXML_EXPORTS
>>>>> MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
>>>>> MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
>>>>> )
>>>>>
>>>>>
>>>>>
>>>>> #######################################
>>>>> # install setup
>>>>> if(NOT APPLE)
>>>>> install ( TARGETS ${target} ${TOOLS}
>>>>> RUNTIME DESTINATION bin
>>>>>     LIBRARY DESTINATION lib
>>>>>     ARCHIVE DESTINATION lib
>>>>>     FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
>>>>>     PUBLIC_HEADER DESTINATION include/libmusicxml
>>>>> )
>>>>> endif(NOT APPLE)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Hello Sean,
>>>>
>>>> Could you try adding a 'project(CATSTMAT)' call right at the top of your
>>>> CMakeLists.txt? As well as setting a name for the project, this call
>>>> also enables languages by default.
>>>>
>>>> HTH,
>>>> Micha
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Powered by www.kitware.com
>>>>
>>>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>>>
>>>> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>>>>
>>>> CMake Support: http://cmake.org/cmake/help/support.html
>>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>>
>>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://public.kitware.com/mailman/listinfo/cmake
>>>
>> Hi Sean,
>>
>> I'm also a bit confused as you seem to set 'C_STANDARD 99' as a property
>> for the target, as well as 'set(CMAKE_CXX_STANDARD 14)'. I don't know if
>> these two settings interfere with each other. Could you remove one of
>> the two as an experiment?
>>
>> Regards,
>> Micha
>>
>
>
> Hello Sean,
>
>Unfortunately I don't have experience with the clion compiler, so I
>can't help you with that. Is there any way I could access this project
>t.o see if I can compile it? Does a simple 'hello world' project compile
>at all?
>
>Regards,
>Micha

There's no "clion compiler". Clion uses CMake to generate makefiles. It works either with GCC, clang or (recently) MSVC. So there's no magic here.



--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: cmake create executable Undefined symbols for architecture x86_64:

Sean Wayland
In reply to this post by Micha Hergarden
Thanks Micha,
The head developer managed to get it to compile under clion on the
weekend, I suspect he may have cleaned up his source code a little
bit. I also suspect listing the source code and targeted libraries in
the correct order may have helped. Thanks for all your help!
Best Sean

On Mon, Jul 10, 2017 at 3:22 PM, Micha Hergarden
<[hidden email]> wrote:

> On 07-07-17 05:14, Sean Wayland wrote:
>> Hi Micha,
>> Thanks very much for the email. That seemed to make a small
>> difference! With both those lines commented out these errors are
>> generated ( below my email ) .
>> I still have included
>> project(CATSMAT)
>> at the top line of the cmake file in the catsmat directory
>>
>> I tried commenting out each of those language type definitions
>> separately but it didn't seem to help.
>> The code compiles under xcode. Those language types ( C++14) are
>> specified in Xcode so I was trying to find a way to copy what is in
>> xcode.
>>
>> Is there a maximum number of "errors" before the clion compiler will
>> spit the dummy ?
>>
>> Another executable will compile with lots and lots of warnings but no "errors"
>>
>> I don't know much about C++ unfortunately. These errors look like
>> simple errors which I could see might be generated if the syntax of
>> the language had changed slightly from one version to the next ..
>>
>> Thanks for you help!
>>
>> Sean
>>
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
>> error: ISO C++ forbids forward references to 'enum' types
>>
>>         enum direction : int { descending=-1, repeat=0, ascending = 1,
>> vertical_bottomtotop };
>>
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
>> error: expected '(' for function-style cast or type construction
>>
>>         enum direction : int { descending=-1, repeat=0, ascending = 1,
>> vertical_bottomtotop };
>>
>>                          ~~~ ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
>> error: field has incomplete type 'enum direction'
>>
>>         enum direction : int { descending=-1, repeat=0, ascending = 1,
>> vertical_bottomtotop };
>>
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
>> error: ISO C++ forbids forward references to 'enum' types
>>
>>         enum direction : int { descending=-1, repeat=0, ascending = 1,
>> vertical_bottomtotop };
>>
>>              ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:30:
>> error: expected '(' for function-style cast or type construction
>>
>>         enum direction : int { descending=-1, repeat=0, ascending = 1,
>> vertical_bottomtotop };
>>
>>                          ~~~ ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:24:
>> error: field has incomplete type 'enum direction'
>>
>>         enum direction : int { descending=-1, repeat=0, ascending = 1,
>> vertical_bottomtotop };
>>
>>                        ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:78:14:
>> note: forward declaration of 'IMUSANT::direction'
>>
>>         enum direction : int { descending=-1, repeat=0, ascending = 1,
>> vertical_bottomtotop };
>>
>>              ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
>> error: ISO C++ forbids forward references to 'enum' types
>>
>>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
>> sixth, seventh };
>>
>>              ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
>> error: expected '(' for function-style cast or type construction
>>
>>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
>> sixth, seventh };
>>
>>                      ~~~ ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
>> error: field has incomplete type 'enum basic'
>>
>>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
>> sixth, seventh };
>>
>>
>> sers/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:14:
>> error: ISO C++ forbids forward references to 'enum' types
>>
>>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
>> sixth, seventh };
>>
>>              ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:26:
>> error: expected '(' for function-style cast or type construction
>>
>>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
>> sixth, seventh };
>>
>>                      ~~~ ^
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/DomainObjects/inc/IMUSANT_interval.h:80:20:
>> error: field has incomplete type 'enum basic'
>>
>>         enum basic : int { unison = 0, second=1, third, fourth, fifth,
>> sixth, seventh };
>>
>>
>>
>>
>> /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat/cmake/../../libIMUSANT/FileProcessing/inc/IMUSANT_processing.h:61:35:
>> error: expected ';' at end of declaration list
>>
>>         const char * what () const noexcept
>>
>>                                   ^
>>
>>                    ^
>>
>>
>>
>> 22 warnings and 12 errors generated.
>>
>> make[3]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/__/Application/CATSMAT_main.cpp.o]
>> Error 1
>>
>> make[2]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/all] Error 2
>>
>> make[1]: *** [catsmat/catsmat/cmake/CMakeFiles/catsmat.dir/rule] Error 2
>>
>> On Thu, Jul 6, 2017 at 3:12 PM, Micha Hergarden
>> <[hidden email]> wrote:
>>> On 06-07-17 15:59, Sean Wayland wrote:
>>>> Hi Micha,
>>>> Thanks very much I tried that .. I added it to the application
>>>> directory cmakelists.txt file . Same issue .. It's already in the top
>>>> level cmake file which looks like this ..
>>>>
>>>> project(CATSMAT)
>>>> cmake_minimum_required(VERSION 3.6.3)
>>>>
>>>>
>>>> if (APPLE)
>>>>
>>>>     set(CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>>> endif (APPLE)
>>>>
>>>>
>>>> include_directories("catsmat/libIMUSANT")
>>>>
>>>> add_subdirectory (catsmat/googletest-master/googletest)
>>>> add_subdirectory (catsmat/libMusicXMLv3/libmusicxml-3.00-src/cmake)
>>>> add_subdirectory (catsmat/libIMUSANT/cmake)
>>>> add_subdirectory (catsmat/libIMUSANT_Tests/cmake)
>>>> add_subdirectory (catsmat/catsmat/cmake)
>>>>
>>>> set(CMAKE_CXX_STANDARD 14)
>>>>
>>>> On Thu, Jul 6, 2017 at 2:48 AM, Micha Hergarden
>>>> <[hidden email]> wrote:
>>>>> On 05-07-17 22:50, Sean Wayland wrote:
>>>>>> I am attempting to write a cmakelists.txt file for an application.
>>>>>> The application has a couple of dependencies.
>>>>>> I have been able to build targets for the dependencies but when I try
>>>>>> and add an executable for the main application I encounter this error.
>>>>>>
>>>>>> Undefined symbols for architecture x86_64:
>>>>>>
>>>>>>   "_main", referenced from:
>>>>>>
>>>>>>      implicit entry/start for main executable
>>>>>>
>>>>>> ld: symbol(s) not found for architecture x86_64
>>>>>>
>>>>>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>>>>>>
>>>>>>
>>>>>> Googling the error and looking on stack exchange suggests that I don't
>>>>>> have a main function in the implicit entry/start .
>>>>>>
>>>>>> Where does it look for this function ?
>>>>>> Does that file need to be first in the list of sources ?
>>>>>>
>>>>>>
>>>>>>
>>>>>> This function is included here :
>>>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>>>>
>>>>>> My cmake file is below.
>>>>>>
>>>>>> Any advice would be appreciated I have been stuck here for a while!
>>>>>>
>>>>>> Best Sean
>>>>>>
>>>>>>
>>>>>> #######################################
>>>>>> # CMAKE CATSTMAT
>>>>>> #######################################
>>>>>> cmake_minimum_required(VERSION 3.6.3)
>>>>>> set(CMAKE_CXX_STANDARD 14)
>>>>>> if(CMAKE_CONFIGURATION_TYPES)
>>>>>> set(CMAKE_CONFIGURATION_TYPES Debug Release)
>>>>>> endif()
>>>>>>
>>>>>> if(UNIX)
>>>>>> add_definitions(-Wall -DGCC)
>>>>>> endif(UNIX)
>>>>>>
>>>>>> ##### RPATH SETTING #####
>>>>>> set(CMAKE_MACOSX_RPATH 1)
>>>>>>
>>>>>> #if(APPLE)
>>>>>> # set (CMAKE_OSX_ARCHITECTURES "x86_64 i386")
>>>>>> # if (${CMAKE_SYSTEM_VERSION} VERSION_LESS 9.0.0)
>>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.4u.sdk)
>>>>>> # elseif (${CMAKE_SYSTEM_VERSION} VERSION_LESS 10.8.0)
>>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
>>>>>> # elseif (${XCODE_VERSION} VERSION_LESS 4.0.0)
>>>>>> # set (CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
>>>>>> # else ()
>>>>>> # set (CMAKE_OSX_SYSROOT "macosx10.7")
>>>>>> # endif ()
>>>>>> # set (CMAKE_C++_FLAGS -mmacosx-version-min=10.4)
>>>>>> #endif(APPLE)
>>>>>> #
>>>>>> #if(WIN32)
>>>>>> # add_definitions(-DWINVER=0x0400 -DWIN32)
>>>>>> # if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>>>> #  add_definitions(-DVC6)
>>>>>> # elseif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005")
>>>>>> #  add_definitions(-DVC2005)
>>>>>> # endif(${CMAKE_GENERATOR} STREQUAL "Visual Studio 6")
>>>>>> #endif(WIN32)
>>>>>>
>>>>>> ###############  BOOST LIBRARIES ###########
>>>>>> if (APPLE)
>>>>>> set(BOOST_ROOT "/usr/local/boost")
>>>>>> set(BOOST_FILESYSTEM_LIB  /usr/local/boost/lib/libboost_filesystem.dylib)
>>>>>> set(BOOST_SYSTEM_LIB      /usr/local/boost/lib/libboost_system.dylib)
>>>>>>
>>>>>> else (NOT APPLE)
>>>>>> set(BOOST_ROOT "C:/local/boost_1_58_0")
>>>>>> set(BOOST_FILESYSTEM_LIB  C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>>>> set(BOOST_SYSTEM_LIB      C:/local/boost_1_58_0/lib64-msvc-12.0)
>>>>>> endif (APPLE)
>>>>>>
>>>>>> FIND_PACKAGE( Boost 1.58.0 REQUIRED  )
>>>>>> INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIR} )
>>>>>>
>>>>>>
>>>>>> #######################################
>>>>>> # set directories, src and headers.
>>>>>>
>>>>>> set (CATSMAT_DIR    /Users/seanwayland/Desktop/CATSMAT-master/catsmat/catsmat )
>>>>>> set (libIMUSANT_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>>>> set (LOKI_DIR               ${CMAKE_CURRENT_SOURCE_DIR}/../../Loki)
>>>>>> set (SUFFIX_TREE_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../SuffixTree)
>>>>>> set (GOOGLE_TEST_INC_DIR
>>>>>> ${CMAKE_CURRENT_SOURCE_DIR}/../../googletest-master/googletest/include)
>>>>>> set (IMUSANT_DIR        ${CMAKE_CURRENT_SOURCE_DIR}/../../libIMUSANT)
>>>>>>
>>>>>>
>>>>>> set (LIBMUSICXML_DIR    ${CMAKE_CURRENT_SOURCE_DIR}/../../libMusicXMLv3)
>>>>>>
>>>>>>
>>>>>> #### SET SOURCES EXPLICITLY #####
>>>>>>
>>>>>> set(SRC
>>>>>>
>>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_contour_suffixtree_builder.cpp
>>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_generalised_interval_suffixtree_builder.cpp
>>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_interval_suffixtree_builder.cpp
>>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_pitch_suffixtree_builder.cpp
>>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_repeated_interval_substring.cpp
>>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_t_repeated_substring.cpp
>>>>>> ${CATSMAT_DIR}/Analysis/src/IMUSANT_VectorMapAnalysisTypes.cpp
>>>>>>
>>>>>> ${CATSMAT_DIR}/Application/CATSMAT_main.cpp
>>>>>> ${CATSMAT_DIR}/Application/CATSMAT_menu.cpp
>>>>>>
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_chord.cpp
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_collectionvisitor.cpp
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_cp_matrix.cpp
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyad_sequences.cpp
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_dyadtuple_sequences.cpp
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_sonority_sequences.cpp
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSequences.cpp
>>>>>> ${CATSMAT_DIR}/CounterpointAnalysis/src/CATSMAT_TrigramSuffixTreeBuilder.cpp
>>>>>>
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_canonic_techniques_tools.cpp
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_partdata.cpp
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_processing.cpp
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile.tpp
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_splitter.cpp
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_score_profile_special.cpp
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredata.cpp
>>>>>> ${CATSMAT_DIR}/GeneralAnalysis/src/CATSMAT_scoredatacollector.cpp
>>>>>>
>>>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_segment.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/IMUSANT_set_of_segment.cpp
>>>>>>
>>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_fixed_period_segmenter.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_partlist_ordered_by_part_entry.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/IMUSANT_segmented_part_fixed_period.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src/SegmentedScoreFixedPeriod.cpp
>>>>>>
>>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_interval_profile_LBDM.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_LBDM_segmenter.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_note_vectors.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_part_LBDM.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_segmented_profile_vectors.cpp
>>>>>> ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src/IMUSANT_weighted_strength_vectors.cpp
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> )
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> # old version of adding source code
>>>>>>
>>>>>> #set (SRCFOLDERS
>>>>>>
>>>>>>
>>>>>> #       ${CATSMAT_DIR}/Analysis/src
>>>>>> #       ${CATSMAT_DIR}/CounterpointAnalysis/src
>>>>>> #       ${CATSMAT_DIR}/GeneralAnalysis/src
>>>>>> #       ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/src
>>>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>>>> #       ${CATSMAT_DIR}/Application
>>>>>> #       ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/src
>>>>>> #       ${CATSMAT_DIR}/Segmentation
>>>>>> #       ${CATSMAT_DIR}/Utilities
>>>>>> #)
>>>>>>
>>>>>>
>>>>>> set (INCFOLDERS
>>>>>> ${libIMUSANT_DIR}
>>>>>> ${CATSMAT_DIR}/Analysis/inc
>>>>>>         ${CATSMAT_DIR}/Application
>>>>>>         ${CATSMAT_DIR}/CounterpointAnalysis/inc
>>>>>>         ${CATSMAT_DIR}/GeneralAnalysis/inc
>>>>>>         ${CATSMAT_DIR}/Segmentation
>>>>>>         ${CATSMAT_DIR}/Segmentation/FixedPeriodDetection/inc
>>>>>>         ${CATSMAT_DIR}/Segmentation/LocalBoundaryDetectionModel/inc
>>>>>>         ${CATSMAT_DIR}/Utilities
>>>>>>         ${libIMUSANT_DIR}/DomainObjects/inc
>>>>>> ${libIMUSANT_DIR}/Utilities/inc
>>>>>> ${libIMUSANT_DIR}/FileProcessing/inc
>>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3
>>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>>>> ${libIMUSANT_DIR}/Converters/MusicXML_v3/shared/inc
>>>>>>         ${IMUSANT_DIR}/DomainObjects/inc
>>>>>> ${IMUSANT_DIR}/Converters/MusicXML_v3
>>>>>>         ${IMUSANT_DIR}/Converters/MusicXML_v3/inc
>>>>>> ${IMUSANT_DIR}/Converters/Shared/inc
>>>>>>         ${IMUSANT_DIR}/FileProcessing/inc
>>>>>>         ${IMUSANT_DIR}/FileProcessing/Analysis/Segmentation/FixedPeriodDetection/
>>>>>>         ${IMUSANT_DIR}/Utilities/inc
>>>>>>         ${SUFFIXTREE_DIR}
>>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src
>>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/lib
>>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/visitors
>>>>>> ${LIBMUSICXML_DIR}/libmusicxml-3.00-src/src/parser
>>>>>>         ${LOKI_DIR}
>>>>>> ${SUFFIX_TREE_DIR}
>>>>>> ${GOOGLE_TEST_INC_DIR}
>>>>>> )
>>>>>>
>>>>>>
>>>>>> #foreach(folder ${SRCFOLDERS})
>>>>>> # set(SRC ${SRC} "${folder}/*.cpp") # add source files
>>>>>> #endforeach(folder)
>>>>>> #file (GLOB CORESRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SRC})
>>>>>>
>>>>>>
>>>>>>
>>>>>> ## is this necessary I think target link directories might do the job ?
>>>>>>
>>>>>> foreach(folder ${INCFOLDERS})
>>>>>> set(HEADERS ${HEADERS} "${folder}/*.h") # add header files
>>>>>> set(INCL ${INCL} "${folder}") # add include folders
>>>>>> endforeach(folder)
>>>>>>  file (GLOB COREH RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${HEADERS})
>>>>>>
>>>>>>
>>>>>> #######################################
>>>>>> # set includes ( is this needed ? )
>>>>>> include_directories( ${INCFOLDERS})
>>>>>> set_source_files_properties (${COREH} PROPERTIES HEADER_FILE_ONLY TRUE)
>>>>>>
>>>>>>
>>>>>> #######################################
>>>>>> # set library target
>>>>>>
>>>>>> #if(APPLE OR MSVC)
>>>>>>
>>>>>> set(target catsmat)
>>>>>>
>>>>>> # I don't know why these if statements are included they seem to do nothing '
>>>>>> #else(APPLE OR MSVC)
>>>>>> # set(target catsmat)
>>>>>> #endif(APPLE OR MSVC)
>>>>>>
>>>>>> ##if(MSVC)
>>>>>> ## enable_language(RC)
>>>>>> ## set(LIBCONTENT ${CORESRC} ${COREH}
>>>>>> ${CATSMAT_DIR}/win32/libIMUSANT/libIMUSANT.rc)
>>>>>> ##else(MSVC)
>>>>>> ## set(LIBCONTENT ${CORESRC} ${COREH})
>>>>>> ##endif(MSVC)
>>>>>>
>>>>>> add_executable(${target} ${SRC} )
>>>>>>
>>>>>> #### add include directories
>>>>>> include_directories ( ${INCFOLDERS} )
>>>>>>
>>>>>> ###############  Targeted Libraries ###########
>>>>>>
>>>>>> TARGET_LINK_LIBRARIES(${target} gtest)
>>>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_FILESYSTEM_LIB})
>>>>>> TARGET_LINK_LIBRARIES(${target} ${BOOST_SYSTEM_LIB})
>>>>>> TARGET_LINK_LIBRARIES(${target} libmusicxml2)
>>>>>> TARGET_LINK_LIBRARIES(${target} libIMUSANT)
>>>>>>
>>>>>>
>>>>>> set_target_properties (${target} PROPERTIES
>>>>>> FRAMEWORK TRUE
>>>>>> VERSION ${VERSION}
>>>>>>                         C_STANDARD 99
>>>>>> FRAMEWORK_VERSION ${VERSION}
>>>>>> PUBLIC_HEADER "${COREH}"
>>>>>> DEFINE_SYMBOL LIBMUSICXML_EXPORTS
>>>>>> MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${STRVERS}
>>>>>> MACOSX_FRAMEWORK_BUNDLE_VERSION ${SSTRVERS}
>>>>>> )
>>>>>>
>>>>>>
>>>>>>
>>>>>> #######################################
>>>>>> # install setup
>>>>>> if(NOT APPLE)
>>>>>> install ( TARGETS ${target} ${TOOLS}
>>>>>> RUNTIME DESTINATION bin
>>>>>>     LIBRARY DESTINATION lib
>>>>>>     ARCHIVE DESTINATION lib
>>>>>>     FRAMEWORK DESTINATION "/Library/Frameworks" CONFIGURATIONS Release
>>>>>>     PUBLIC_HEADER DESTINATION include/libmusicxml
>>>>>> )
>>>>>> endif(NOT APPLE)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> Hello Sean,
>>>>>
>>>>> Could you try adding a 'project(CATSTMAT)' call right at the top of your
>>>>> CMakeLists.txt? As well as setting a name for the project, this call
>>>>> also enables languages by default.
>>>>>
>>>>> HTH,
>>>>> Micha
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Powered by www.kitware.com
>>>>>
>>>>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>>>>
>>>>> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>>>>>
>>>>> CMake Support: http://cmake.org/cmake/help/support.html
>>>>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>>>>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>>>>
>>>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/mailman/listinfo/cmake
>>>>
>>> Hi Sean,
>>>
>>> I'm also a bit confused as you seem to set 'C_STANDARD 99' as a property
>>> for the target, as well as 'set(CMAKE_CXX_STANDARD 14)'. I don't know if
>>> these two settings interfere with each other. Could you remove one of
>>> the two as an experiment?
>>>
>>> Regards,
>>> Micha
>>>
>>
>>
> Hello Sean,
>
> Unfortunately I don't have experience with the clion compiler, so I
> can't help you with that. Is there any way I could access this project
> to see if I can compile it? Does a simple 'hello world' project compile
> at all?
>
> Regards,
> Micha
>



--
www.seanwayland.com

Sean Wayland

licensed real estate salesperson
phone: 3475231455
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake