PDA

Просмотр полной версии : [Вопрос] Pawn на Ubuntu



kushichka
28.06.2016, 20:48
Есть ли способы сделать компилятор pawn под ubuntu? Читал подобную тему, где DC ссылал на свою тему о pawn на android, но у меня там возникла проблема, которую пока не получается решить.
И может кто подскажет адекватную замену Denwer на linux?

Daniel_Cortez
28.06.2016, 20:55
Читал подобную тему, где DC ссылал на свою тему о pawn на android, но у меня там возникла проблема, которую пока не получается решить.
И в чём же заключается эта ваша проблема?

kushichka
28.06.2016, 22:43
И в чём же заключается эта ваша проблема?

Команды которые нужно вводить не срабатывают. Ввел изначально команду, которая предлагается в статье, она не прошла, прогуглил, вписал перед командой "sudo", разаботала, но потом опять ошибки..
http://ihost.pro-pawn.ru/image.php?di=L6IJ

ziggi
28.06.2016, 23:24
Команды которые нужно вводить не срабатывают. Ввел изначально команду, которая предлагается в статье, она не прошла, прогуглил, вписал перед командой "sudo", разаботала, но потом опять ошибки..
http://ihost.pro-pawn.ru/image.php?di=L6IJ

Не нужно ставить запятую.
Я использую следующий скрипт для компиляции из-под Linux: https://github.com/Open-GTO/Open-GTO/blob/master/!compile.sh
Сам компилятор (слегка изменнённая мной версия от Zeex) лежит здесь: https://github.com/Open-GTO/Open-GTO/tree/master/compiler

kushichka
29.06.2016, 00:14
теперь ошибка после команды "make", которую я ввел после команды "cmake ../compiler". Ошибок много, что они и на экран не помещаются. Хотя делал все согласно гайду.
http://ihost.pro-pawn.ru/image.php?di=7ILI

ziggi
29.06.2016, 02:29
теперь ошибка после команды "make", которую я ввел после команды "cmake ../compiler". Ошибок много, что они и на экран не помещаются. Хотя делал все согласно гайду.
http://ihost.pro-pawn.ru/image.php?di=7ILI

Проблема в компиляции pawndisasm, попробуй его не компилировать.

Вот pawn/source/compiler/CMakeLists.txt без pawndisasm:

project(pawnc C)
cmake_minimum_required(VERSION 2.8)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake)

set(VERSION_MAJOR 3)
set(VERSION_MINOR 10)
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
set(VERSION_STR ${VERSION})
math(EXPR VERSION_INT "${VERSION_MAJOR} << 8 | ${VERSION_MINOR}")

# Append git commit hash to the version string
include(GetGitRevisionDescription)
git_describe(GIT_COMMIT --always)
if(GIT_COMMIT)
set(VERSION_STR ${VERSION_STR}.${GIT_COMMIT})
endif()

# check for optional include files
include(CheckIncludeFile)
check_include_file("unistd.h" HAVE_UNISTD_H)
if(HAVE_UNISTD_H)
add_definitions(-DHAVE_UNISTD_H)
endif()
check_include_file("inttypes.h" HAVE_INTTYPES_H)
if(HAVE_INTTYPES_H)
add_definitions(-DHAVE_INTTYPES_H)
endif()
check_include_file("stdint.h" HAVE_STDINT_H)
if(HAVE_STDINT_H)
add_definitions(-DHAVE_STDINT_H)
endif()
check_include_file("alloca.h" HAVE_ALLOCA_H)
if(HAVE_ALLOCA_H)
add_definitions(-DHAVE_ALLOCA_H)
endif()

# check for optional library functions
include(CheckFunctionExists)
check_function_exists(strlcpy HAVE_STRLCPY)
if(HAVE_STRLCPY)
add_definitions(-DHAVE_STRLCPY)
endif()
check_function_exists(strlcat HAVE_STRLCAT)
if(HAVE_STRLCAT)
add_definitions(-DHAVE_STRLCAT)
endif()

if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS /J)
endif()

if(UNIX)
add_definitions(-DLINUX -DENABLE_BINRELOC -g)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../linux)
link_libraries(pthread)
endif()

configure_file(version.h.in version.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR})

# The Pawn compiler shared library
set(PAWNC_SRCS
libpawnc.c
lstring.c
memfile.c
sc1.c
sc2.c
sc3.c
sc4.c
sc5.c
sc6.c
sc7.c
sci18n.c
sclist.c
scmemfil.c
scstate.c
scvars.c)
set_source_files_properties(sc1.c COMPILE_FLAGS -DNO_MAIN)
if(WIN32)
set(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.rc)
set_source_files_properties(libpawnc.c COMPILE_FLAGS -DPAWNC_DLL)
if(BORLAND)
# Borland linker uses a DEF file if one is in the output directory
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpawnc.def.borland
${CMAKE_BINARY_DIR}/pawnc.def
COPYONLY)
else()
# Microsoft Visual C/C++ supports a DEF file as if it were a source file
set(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.def)
endif()
endif()
if(UNIX)
set(PAWNC_SRCS
${PAWNC_SRCS}
${CMAKE_CURRENT_SOURCE_DIR}/../linux/binreloc.c
)
endif()
add_library(pawnc SHARED ${PAWNC_SRCS})
if(WATCOM) #Watcom C/C++ does not support a .DEF file for the exports
set_target_properties(pawnc PROPERTIES LINK_FLAGS "/exp=libpawnc")
elseif(MINGW)
set_target_properties(pawnc PROPERTIES LINK_FLAGS
"-Wl,--enable-stdcall-fixup")
endif()

# The Pawn compiler driver (console program)
set(PAWNCC_SRCS pawncc.c)
if(WIN32)
set(PAWNCC_SRCS ${PAWNCC_SRCS} libpawnc.rc)
if(BORLAND)
# Borland linker uses a DEF file if one is in the output directory
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pawncc.def.borland
${CMAKE_BINARY_DIR}/pawncc.def
COPYONLY)
else()
# Microsoft Visual C/C++ supports a DEF file as if it were a source file
set(PAWNC_SRCS ${PAWNC_SRCS} pawncc.def)
endif()
endif()
add_executable(pawncc ${PAWNCC_SRCS})
target_link_libraries(pawncc pawnc)

# Install compiler and disassembler binaries
install(TARGETS pawnc pawncc
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
if(MSVC)
# If building with Microsoft Visual C++ also install corresponding
# Program Database files (for debugging)
install(
FILES ${PROJECT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}/pawnc.pdb
${PROJECT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}/pawncc.pdb
DESTINATION bin)
endif()

# Generate a binary package with CPack
string(TOLOWER ${CMAKE_SYSTEM_NAME} SYSTEM_NAME_LOWER)
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set(CPACK_PACKAGE_VERSION ${VERSION_STR})
set(CPACK_PACKAGE_FILE_NAME pawnc-${VERSION_STR}-${SYSTEM_NAME_LOWER})
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/../../license.txt)
include(CPack)

kushichka
29.06.2016, 04:46
Проблема в компиляции pawndisasm, попробуй его не компилировать.

Вот pawn/source/compiler/CMakeLists.txt без pawndisasm:

project(pawnc C)
cmake_minimum_required(VERSION 2.8)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake)

set(VERSION_MAJOR 3)
set(VERSION_MINOR 10)
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR})
set(VERSION_STR ${VERSION})
math(EXPR VERSION_INT "${VERSION_MAJOR} << 8 | ${VERSION_MINOR}")

# Append git commit hash to the version string
include(GetGitRevisionDescription)
git_describe(GIT_COMMIT --always)
if(GIT_COMMIT)
set(VERSION_STR ${VERSION_STR}.${GIT_COMMIT})
endif()

# check for optional include files
include(CheckIncludeFile)
check_include_file("unistd.h" HAVE_UNISTD_H)
if(HAVE_UNISTD_H)
add_definitions(-DHAVE_UNISTD_H)
endif()
check_include_file("inttypes.h" HAVE_INTTYPES_H)
if(HAVE_INTTYPES_H)
add_definitions(-DHAVE_INTTYPES_H)
endif()
check_include_file("stdint.h" HAVE_STDINT_H)
if(HAVE_STDINT_H)
add_definitions(-DHAVE_STDINT_H)
endif()
check_include_file("alloca.h" HAVE_ALLOCA_H)
if(HAVE_ALLOCA_H)
add_definitions(-DHAVE_ALLOCA_H)
endif()

# check for optional library functions
include(CheckFunctionExists)
check_function_exists(strlcpy HAVE_STRLCPY)
if(HAVE_STRLCPY)
add_definitions(-DHAVE_STRLCPY)
endif()
check_function_exists(strlcat HAVE_STRLCAT)
if(HAVE_STRLCAT)
add_definitions(-DHAVE_STRLCAT)
endif()

if(MSVC)
add_definitions(-D_CRT_SECURE_NO_WARNINGS /J)
endif()

if(UNIX)
add_definitions(-DLINUX -DENABLE_BINRELOC -g)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../linux)
link_libraries(pthread)
endif()

configure_file(version.h.in version.h)
include_directories(${CMAKE_CURRENT_BINARY_DIR})

# The Pawn compiler shared library
set(PAWNC_SRCS
libpawnc.c
lstring.c
memfile.c
sc1.c
sc2.c
sc3.c
sc4.c
sc5.c
sc6.c
sc7.c
sci18n.c
sclist.c
scmemfil.c
scstate.c
scvars.c)
set_source_files_properties(sc1.c COMPILE_FLAGS -DNO_MAIN)
if(WIN32)
set(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.rc)
set_source_files_properties(libpawnc.c COMPILE_FLAGS -DPAWNC_DLL)
if(BORLAND)
# Borland linker uses a DEF file if one is in the output directory
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpawnc.def.borland
${CMAKE_BINARY_DIR}/pawnc.def
COPYONLY)
else()
# Microsoft Visual C/C++ supports a DEF file as if it were a source file
set(PAWNC_SRCS ${PAWNC_SRCS} libpawnc.def)
endif()
endif()
if(UNIX)
set(PAWNC_SRCS
${PAWNC_SRCS}
${CMAKE_CURRENT_SOURCE_DIR}/../linux/binreloc.c
)
endif()
add_library(pawnc SHARED ${PAWNC_SRCS})
if(WATCOM) #Watcom C/C++ does not support a .DEF file for the exports
set_target_properties(pawnc PROPERTIES LINK_FLAGS "/exp=libpawnc")
elseif(MINGW)
set_target_properties(pawnc PROPERTIES LINK_FLAGS
"-Wl,--enable-stdcall-fixup")
endif()

# The Pawn compiler driver (console program)
set(PAWNCC_SRCS pawncc.c)
if(WIN32)
set(PAWNCC_SRCS ${PAWNCC_SRCS} libpawnc.rc)
if(BORLAND)
# Borland linker uses a DEF file if one is in the output directory
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pawncc.def.borland
${CMAKE_BINARY_DIR}/pawncc.def
COPYONLY)
else()
# Microsoft Visual C/C++ supports a DEF file as if it were a source file
set(PAWNC_SRCS ${PAWNC_SRCS} pawncc.def)
endif()
endif()
add_executable(pawncc ${PAWNCC_SRCS})
target_link_libraries(pawncc pawnc)

# Install compiler and disassembler binaries
install(TARGETS pawnc pawncc
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
if(MSVC)
# If building with Microsoft Visual C++ also install corresponding
# Program Database files (for debugging)
install(
FILES ${PROJECT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}/pawnc.pdb
${PROJECT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}/pawncc.pdb
DESTINATION bin)
endif()

# Generate a binary package with CPack
string(TOLOWER ${CMAKE_SYSTEM_NAME} SYSTEM_NAME_LOWER)
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set(CPACK_PACKAGE_VERSION ${VERSION_STR})
set(CPACK_PACKAGE_FILE_NAME pawnc-${VERSION_STR}-${SYSTEM_NAME_LOWER})
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/../../license.txt)
include(CPack)


Да все заработало. Но осталась еще одна ошибка, которую не получается самостоятельно решить, уже последняя, при компиляции пишет что какой-то файл ему не нравится, но не понятно какой..
http://ihost.pro-pawn.ru/image.php?di=UVWW

newbie01
29.06.2016, 08:16
Ziggi а чем твоя версия компилятора отличается от компилятора Zeex?

TheMallard
29.06.2016, 10:07
Ziggi а чем твоя версия компилятора отличается от компилятора Zeex?

Лол, у ziggi нет своего компилятора.

Seregamil
29.06.2016, 10:18
Да все заработало. Но осталась еще одна ошибка, которую не получается самостоятельно решить, уже последняя, при компиляции пишет что какой-то файл ему не нравится, но не понятно какой..
http://ihost.pro-pawn.ru/image.php?di=UVWW

а вы пробовали гуглить? или головой думать?
русские символы не поддерживаются в пути к файлу.

newbie01
29.06.2016, 12:16
Лол, у ziggi нет своего компилятора.

А это что?


Сам компилятор (слегка изменнённая мной версия от Zeex) лежит здесь: https://github.com/Open-GTO/Open-GTO/tree/master/compiler

L0ndl3m
29.06.2016, 12:28
А это что?
Это форкнутый проект.

kushichka
29.06.2016, 19:57
а вы пробовали гуглить? или головой думать?
русские символы не поддерживаются в пути к файлу.

Отвечаю на вопрос: "Рабочий стол" наименовал не я, а система, и если она так сделала, логично предположить что проблем с этим возникнуть не должно.

ziggi
30.06.2016, 10:08
Ziggi а чем твоя версия компилятора отличается от компилятора Zeex?

Я отключил одну проверку, из-за которой компилятор иногда вылетал. Подробно здесь (https://github.com/Zeex/pawn/issues/64).

- - - Добавлено - - -


Да все заработало. Но осталась еще одна ошибка, которую не получается самостоятельно решить, уже последняя, при компиляции пишет что какой-то файл ему не нравится, но не понятно какой..
http://ihost.pro-pawn.ru/image.php?di=UVWW

Символ пробела нужно экранировать, то есть так: ~/Рабочий\ стол/samp03/