Official glsl-parser download:
https://github.com/graphitemaster/glsl-parser
As the title says, I cannot compile the project "glsl-parser" because it has 2 errors, about main and about an unresolved external symbol error. How to fix? The second error is the most important to fix because I can temporary fix the first error about main. But both are important to fix because in the end, there shouldn't be error.
_build_windows.bat (file that I added):
set BUILD_FOLDER="_build_windows"
cmake -S . -B %BUILD_FOLDER% -A x64
CMakeLists.txt (file that I added):
cmake_minimum_required(VERSION 3.7.1)
####################################################################################################
project(glsl-parser VERSION 1.0)
set(BIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/bin)
####################################################################################################
# Add any required preprocessor definitions here
add_definitions(-DVK_USE_PLATFORM_WIN32_KHR)
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
add_compile_definitions(_USE_MATH_DEFINES)
add_compile_definitions(_PROJECT_NAME="${PROJECT_NAME}")
# Gather list of header and source files for compilation
file(GLOB_RECURSE CPP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
file(GLOB_RECURSE H_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
source_group("" FILES ${CPP_FILES})
source_group("" FILES ${H_FILES})
# Build project, give it a name and includes list of file to be compiled
add_executable(${PROJECT_NAME} ${CPP_FILES} ${H_FILES})
# Different postfix
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "_debug")
set_target_properties(${PROJECT_NAME} PROPERTIES RELEASE_POSTFIX "")
set_target_properties(${PROJECT_NAME} PROPERTIES MINSIZEREL_POSTFIX "_minsizerel")
set_target_properties(${PROJECT_NAME} PROPERTIES RELWITHDEBINFO_POSTFIX "_relwithdebinfo")
# Define project properties
set_property(TARGET ${PROJECT_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${BIN_DIR})
set_property(TARGET ${PROJECT_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BIN_DIR})
set_property(TARGET ${PROJECT_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BIN_DIR})
set_property(TARGET ${PROJECT_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${BIN_DIR})
set_property(TARGET ${PROJECT_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BIN_DIR})
# Define C++ version to be used for building the project
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
# Define C version to be used for building the project
set_property(TARGET ${PROJECT_NAME} PROPERTY C_STANDARD 99)
set_property(TARGET ${PROJECT_NAME} PROPERTY C_STANDARD_REQUIRED ON)
####################################################################################################
# Startup project
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT glsl-parser)
I use Visual Studio 2015
To create the Visual Studio Solution "glsl-parser.sln", execute the new added file "_build_windows.bat".
To compile, click that button "Local Windows Debugger", then it will show so many errors (not easy to read), and then click that button "Local Windows Debugger" again to show very clear errors just like in the image below.
According to the following link, the unresolved external symbol error means that an operator delete is missing from external, and I don't believe I can fix it internally because astNode
is an external: https://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix