Git Product home page Git Product logo

Comments (37)

yingriyanlong avatar yingriyanlong commented on August 14, 2024 1

Same problem here, do you have it solved?

I manually change the '-Werror' to '-Wall' in Makefile and fix the /home/export/apps/xssp/boost_1_72_0/build/include/boost/iostreams/detail/functional.hpp:41:93: error: extra ‘;’ [-Werror=pedantic]
BOOST_DELETED_FUNCTION(device_close_operation& operator=(const device_close_operation&));

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

Hello! Could you tell me your boost version and xssp version?

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

I am trying to install XSSP 3.0.10. We have two Boost versions installed. 1.53 and 1.68.0.a. I've tried both of them and they both kick out the same error. This is on Red Hat 7.6

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

I tried with boost 1.68.0 and I was able to compile. So it's either one of these issues:

  1. the compiler tries to combine the library files of one boost version with the headers of the other boost version. Try setting the configure script's --with-boost argument also, then run again from scratch.

OR

  1. the boost you're building with is incorrectly built. Ask your administrator to remove both boost installation and install the latest version. Then run again from scrath.

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

When I add the --with-boost argument the configure script fails with the error: "configure: error: Could not find a version of the library!". Just before that it says "checking for boostlib >= 1.48... yes" and then "checking whether the Boost::Date_Time library is available... yes"

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

I meant that you should use the --with-boost argument like this:

./configure -- with-boost-libdir=PATH --with-boost=PATH

Did you provide a path with the argument?

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

I did. I've used both of those arguments and it still doesn't work. ./configure --with-boost=/cm/local/apps/boost/1.68.0.a --with-boost-libdir=/cm/local/apps/boost/1.68.0.a/lib64 CC=mpicc CXX=mpicxx
configure: error: Could not link against boost_filesystem !

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

Is the file "/cm/local/apps/boost/1.68.0.a/lib64/libboost_filesystem.so" present on your machine?
What about "/cm/local/apps/boost/1.68.0.a/lib64/libboost_filesystem.so.1.68.0.a" ?

Also, what is the message you get before "Could not link against ...". It should be something like: "checking whether the ... library is available"

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

It did find the filesystem library and it said it was available.

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

I think this is some kind of autoconf problem. I'll look into it when I have time. There must be some way to make this error go away. I'll let you know when I have a solution...

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

I've created a similar situation on my local machine

@traverbrad your two boost versions are conflicting and I think the second boost installation has partly overwritten the first one. Since you're not the administrator, the only solution is not to use either of the two boost installations. Instead, build your own boost in your home directory.

Download the latest boost source from: https://www.boost.org/users/download/ and extract the archive.
From the resulting directory, run ./bootstrap.sh, then ./b2, then ./b2 install --prefix=$HOME/boost
From the xssp directory, configure with ./configure --with-boost=$HOME/boost
This should dodge the conflicting boost installations.

If you still get linker errors, then use the '-L' flag on the compiler to specify the directory where you installed boost.

from hssp.

mattiaperr avatar mattiaperr commented on August 14, 2024

hi cbaakman and travelbrad

I have the same error during the installation. How can I know how many version are there in my computer?

@cbaakman I tried with this procedure:

Download the latest boost source from: https://www.boost.org/users/download/ and extract the archive.
From the resulting directory, run ./bootstrap.sh, then ./b2, then ./b2 install --prefix=$HOME/boost
From the xssp directory, configure with ./configure --with-boost=$HOME/boost
This should dodge the conflicting boost installations.

but still returns error, where should i place the -L flag?

thank you

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

@garundula

In order to find out how many versions of boost are installed, you need to search your hard drive for boost library files with version numbers. Commands like 'locate' on linux can help.

If the makefile doesn't include the boost directory in your build path (with -L), then the easiest way is to edit your Makefile manually after running configure. Take care of the following things:

LDFLAGS should include all library directories:

LDFLAGS = $(BOOST_LDFLAGS) $(LIBBZ2_LDFLAGS) $(LIBZ_LDFLAGS)

CXXLINK and LINK should include LDFLAGS:

CXXLINK = ... $(LDFLAGS) ...
LINK = ... $(LDFLAGS) ...

Also, the build commands for mkhssp, mkdssp and hsspconv should include the $(CXXLINK)

I'll try to find a way to make autom4ke set this right automatically in the next version.

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

I have put a new release online:
https://github.com/cmbi/xssp/releases/tag/3.0.11

In this release, the autogen.sh will automatically add the alternative boost directory to the makefile. All you have to do is specify the --with-boost path when running configure.

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

Still having the same issue. I specify the boost path and it says it can't link against boost_filesystem even though it says it's available.

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

@traverbrad I tried doing the same as you on my ubuntu 18.04 with boost 1.68.1. I used the -L flag, but I got a linker error between libboost_timer.so and libboost_chrono.so. Is this the same as you got?

Apparently, the compiler uses the -L flag for finding boost libraries for linking executables, but not for linking libraries together. I fixed this by setting the environment variable LD_LIBRARY_PATH to the boost lib directory.

Does this help you?

I'll try to find a way to set this in the configure script.

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

I set the LD_LIBRARY_PATH variable and that fixed the configure error. Now I'm getting loads of boost undefined reference errors when I try to run make.

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

@traverbrad
Did you run 'make clean' after reconfiguring?
Could you give an example of one of such undefined reference errors?
Could you also give me an 'ls' output on the boost library directory?

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

I did run make clean. Same problem. Here is one of the errors:
/cm/local/apps/boost/1.68.0.a/include/boost/program_options/detail/value_semantic.hpp:184: undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::string, std::allocatorstd::string > const&, std::string*, int)'

Output from boost directory:
libboost_atomic.a libboost_fiber.a libboost_log.so libboost_math_tr1.so.1.68.0 libboost_serialization.a libboost_thread.a
libboost_atomic.so libboost_fiber.so libboost_log.so.1.68.0 libboost_numpy27.a libboost_serialization.so libboost_thread.so
libboost_atomic.so.1.68.0 libboost_fiber.so.1.68.0 libboost_math_c99.a libboost_numpy27.so libboost_serialization.so.1.68.0 libboost_thread.so.1.68.0
libboost_chrono.a libboost_filesystem.a libboost_math_c99f.a libboost_numpy27.so.1.68.0 libboost_signals.a libboost_timer.a
libboost_chrono.so libboost_filesystem.so libboost_math_c99f.so libboost_prg_exec_monitor.a libboost_signals.so libboost_timer.so
libboost_chrono.so.1.68.0 libboost_filesystem.so.1.68.0 libboost_math_c99f.so.1.68.0 libboost_prg_exec_monitor.so libboost_signals.so.1.68.0 libboost_timer.so.1.68.0
libboost_container.a libboost_graph.a libboost_math_c99l.a libboost_prg_exec_monitor.so.1.68.0 libboost_stacktrace_addr2line.a libboost_type_erasure.a
libboost_container.so libboost_graph.so libboost_math_c99l.so libboost_program_options.a libboost_stacktrace_addr2line.so libboost_type_erasure.so
libboost_container.so.1.68.0 libboost_graph.so.1.68.0 libboost_math_c99l.so.1.68.0 libboost_program_options.so libboost_stacktrace_addr2line.so.1.68.0 libboost_type_erasure.so.1.68.0
libboost_context.a libboost_iostreams.a libboost_math_c99.so libboost_program_options.so.1.68.0 libboost_stacktrace_basic.a libboost_unit_test_framework.a
libboost_context.so libboost_iostreams.so libboost_math_c99.so.1.68.0 libboost_python27.a libboost_stacktrace_basic.so libboost_unit_test_framework.so
libboost_context.so.1.68.0 libboost_iostreams.so.1.68.0 libboost_math_tr1.a libboost_python27.so libboost_stacktrace_basic.so.1.68.0 libboost_unit_test_framework.so.1.68.0
libboost_contract.a libboost_locale.a libboost_math_tr1f.a libboost_python27.so.1.68.0 libboost_stacktrace_noop.a libboost_wave.a
libboost_contract.so libboost_locale.so libboost_math_tr1f.so libboost_random.a libboost_stacktrace_noop.so libboost_wave.so
libboost_contract.so.1.68.0 libboost_locale.so.1.68.0 libboost_math_tr1f.so.1.68.0 libboost_random.so libboost_stacktrace_noop.so.1.68.0 libboost_wave.so.1.68.0
libboost_date_time.a libboost_log.a libboost_math_tr1l.a libboost_random.so.1.68.0 libboost_system.a libboost_wserialization.a
libboost_date_time.so libboost_log_setup.a libboost_math_tr1l.so libboost_regex.a libboost_system.so libboost_wserialization.so
libboost_date_time.so.1.68.0 libboost_log_setup.so libboost_math_tr1l.so.1.68.0 libboost_regex.so libboost_system.so.1.68.0 libboost_wserialization.so.1.68.0
libboost_exception.a libboost_log_setup.so.1.68.0 libboost_math_tr1.so libboost_regex.so.1.68.0 libboost_test_exec_monitor.a

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

@traverbrad
You seem to have the right boost libraries, so the problem is that your compiler still can't find them.
Could you tell me a little more about the calls that the makefile makes to the compiler?
Is the -L flag actually used? If so, what is its setting?

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

So this is what I found:
BOOST_CPPFLAGS = -pthread -I/cm/local/apps/boost/1.68.0.a/include
BOOST_DATE_TIME_LIB = -lboost_date_time
BOOST_FILESYSTEM_LIB = -lboost_filesystem
BOOST_IOSTREAMS_LIB = -lboost_iostreams
BOOST_LDFLAGS = -L/cm/local/apps/boost/1.68.0.a/lib64
BOOST_PROGRAM_OPTIONS_LIB = -lboost_program_options
BOOST_REGEX_LIB = -lboost_regex
BOOST_SYSTEM_LIB = -lboost_system
BOOST_THREAD_LIB = -lboost_thread
BOOST_UNIT_TEST_FRAMEWORK_LIB = -lboost_unit_test_framework

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

That's part of the Makefile, right? The variable BOOST_LDFLAGS should point to the directory where the boost library files are. Also check that the Makefile actually passes the variable BOOST_LDFLAGS on to the compiler.

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

Correct, it is part of the makefile. BOOST_LDFLAGS points to the correct place. So digging through the Makfile, AM_LDFLAGS gets BOOST_LDFLAGS, CXXLINK gets AM_LDFLAGS (among other things), LINK gets AM_LDFLAGS (among other things).

These are the things I found that use the CXXLINK variable:
hsspconv$(EXEEXT): $(hsspconv_OBJECTS) $(hsspconv_DEPENDENCIES) $(EXTRA_hsspconv_DEPENDENCIES)
@rm -f hsspconv$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(hsspconv_OBJECTS) $(hsspconv_LDADD) $(LIBS)

mkdssp$(EXEEXT): $(mkdssp_OBJECTS) $(mkdssp_DEPENDENCIES) $(EXTRA_mkdssp_DEPENDENCIES)
@rm -f mkdssp$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(mkdssp_OBJECTS) $(mkdssp_LDADD) $(LIBS)

mkhssp$(EXEEXT): $(mkhssp_OBJECTS) $(mkhssp_DEPENDENCIES) $(EXTRA_mkhssp_DEPENDENCIES)
@rm -f mkhssp$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(mkhssp_OBJECTS) $(mkhssp_LDADD) $(LIBS)

test_conv$(EXEEXT): $(test_conv_OBJECTS) $(test_conv_DEPENDENCIES) $(EXTRA_test_conv_DEPENDENCIES)
@rm -f test_conv$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(test_conv_OBJECTS) $(test_conv_LDADD) $(LIBS)

test_fasta$(EXEEXT): $(test_fasta_OBJECTS) $(test_fasta_DEPENDENCIES) $(EXTRA_test_fasta_DEPENDENCIES)
@rm -f test_fasta$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(test_fasta_OBJECTS) $(test_fasta_LDADD) $(LIBS)

test_readpdb$(EXEEXT): $(test_readpdb_OBJECTS) $(test_readpdb_DEPENDENCIES) $(EXTRA_test_readpdb_DEPENDENCIES)
@rm -f test_readpdb$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(test_readpdb_OBJECTS) $(test_readpdb_LDADD) $(LIBS)

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

So let me summarize everything:

  • when you build the mkhssp executable, you get undefined references on boost symbols
  • your boost library files are located in /cm/local/apps/boost/1.68.0.a/lib64/
  • your makefile adds the argument -L/cm/local/apps/boost/1.68.0.a/lib64 to the compiler
  • your makefile also adds the $(mkhssp_LDADD) variable to the compiler

Am I correct?

Then the last thing I can think of is that the -lboost_* arguments are missing from $(mkhssp_LDADD) variable. That could explain the undefined references.

Could you also check the LDADD variables in the makefile?

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024
  1. Yes
  2. Yes
  3. Yes
  4. It would appear so. From the makefile: mkdssp_LDADD = $(shared_LDADD)

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

So the value of shared_LDADD is important. It may point to other variables, but it should (indirectly) include the -lboost_* arguments. Could you check that?

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

This is what shared_LDADD points to:
shared_LDADD = $(BOOST_DATE_TIME_LIB)
$(BOOST_FILESYSTEM_LIB)
$(BOOST_IOSTREAMS_LIB)
$(BOOST_PROGRAM_OPTIONS_LIB)
$(BOOST_REGEX_LIB)
$(BOOST_SYSTEM_LIB)
$(BOOST_THREAD_LIB)
-lpthread

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

I presume the variables like $(BOOST_DATE_TIME_LIB) simply have values like -lboost_date_time. So the boost libraries are included, but maybe not all of them.

What undefined reference errors are you getting when compiling?

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

Here are some of the undefined reference errors:
/cm/local/apps/boost/1.68.0.a/include/boost/program_options/errors.hpp:379: undefined reference to boost::program_options::validation_error::get_template(boost::program_options::validation_error::kind_t)' /cm/local/apps/boost/1.68.0.a/include/boost/program_options/errors.hpp:379: undefined reference to boost::program_options::error_with_option_name::error_with_option_name(std::string const&, std::string const&, std::string const&, int)'
src/mkdssp.o: In function to_internal<std::basic_string<char> >': /cm/local/apps/boost/1.68.0.a/include/boost/program_options/detail/convert.hpp:79: undefined reference to boost::program_options::to_internal(std::string const&)'
src/mkdssp.o: In function boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*)': /cm/local/apps/boost/1.68.0.a/include/boost/program_options/detail/parsers.hpp:28: undefined reference to boost::program_options::detail::cmdline::cmdline(std::vector<std::string, std::allocatorstd::string > const&)'
src/mkdssp.o: In function boost::program_options::typed_value<int, char>::name() const': /cm/local/apps/boost/1.68.0.a/include/boost/program_options/detail/value_semantic.hpp:22: undefined reference to boost::program_options::arg'
src/mkdssp.o: In function boost::program_options::typed_value<std::string, char>::name() const': /cm/local/apps/boost/1.68.0.a/include/boost/program_options/detail/value_semantic.hpp:22: undefined reference to boost::program_options::arg'
src/mkdssp.o: In function main': /share/apps/xssp/hssp-3.0.11/src/mkdssp.cpp:48: undefined reference to boost::program_options::options_description::options_description(std::string const&, unsigned int, unsigned int)'
src/mkdssp.o: In function boost::program_options::variables_map::operator[](std::string const&) const': /cm/local/apps/boost/1.68.0.a/include/boost/program_options/variables_map.hpp:155: undefined reference to boost::program_options::abstract_variables_map::operator[](std::string const&) const'
/cm/local/apps/boost/1.68.0.a/include/boost/program_options/variables_map.hpp:155: undefined reference to boost::program_options::abstract_variables_map::operator[](std::string const&) const' /cm/local/apps/boost/1.68.0.a/include/boost/program_options/variables_map.hpp:155: undefined reference to boost::program_options::abstract_variables_map::operator[](std::string const&) const'
src/mkdssp.o: In function void boost::program_options::validate<int, char>(boost::any&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int*, long)': /cm/local/apps/boost/1.68.0.a/include/boost/program_options/detail/value_semantic.hpp:95: undefined reference to boost::program_options::invalid_option_value::invalid_option_value(std::string const&)'
src/mkdssp.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const' src/mkdssp.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE]+0x38): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
src/mkdssp.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE]+0x30): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const' src/mkdssp.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE]+0x38): undefined reference to boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'
src/mkdssp.o:(.rodata._ZTVN5boost15program_options16validation_errorE[_ZTVN5boost15program_options16validation_errorE]+0x30): undefined reference to `boost::program_options::error_with_option_name::substitute_placeholders(std::string const&) const'

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

Are you only getting undefined references from boost/program_options ?

If so, then the value of $(BOOST_PROGRAM_OPTIONS_LIB) might be important. It should be -lboost_program_options and in /cm/local/apps/boost/1.68.0.a/lib64 there should be a file named "libboost_program_options.so" or "libboost_program_options.a".

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

My apologies for the late reply. I am only getting undefined reference errors from the boost libraries.

BOOST_PROGRAM_OPTIONS_LIB is set to -lboost_program_options

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

Thus the -lboost_program_options flag is set and it points to a file in /cm/local/apps/boost/1.68.0.a/lib64/, otherwise you'd get a different error.

This means that the libboost_program_options.so or libboost_program_options.a in your directory does not contain the required symbols. I don't really know why the symbols are not in that file. Perhaps lib64 is the wrong architecture.

What might work is manually building the latest boost and configuring your hssp build to use that boost version instead.

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

So I've built the latest version of Boost (1.72). XSSP is configuring properly but I'm getting errors when running make again. These are two of the errors I'm getting:

/bin/ld: warning: libboost_chrono.so.1.72.0, needed by /home/export/apps/xssp/boost_1_72_0/build/lib/libboost_timer.so, not found (try using -rpath or -rpath-link)
src/blast.o: In function `boost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits > >::unwind_extra_block(bool)':

/usr/include/boost/regex/v4/perl_matcher_non_recursive.hpp:1117: undefined reference to boost::re_detail::put_mem_block(void*)' src/blast.o: In function boost::re_detail::cpp_regex_traits_implementation::error_string(boost::regex_constants::error_type) const':

For the first error, I checked and libboost_chrono.so.1.72.0 is present. This is the command I used to configure: ./configure --with-boost-libdir=/home/export/apps/xssp/boost_1_72_0/build/lib CC=mpicc CXX=mpicxx

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

@traverbrad I did what you did and got the same errors.

I was able to solve the libboost_chrono problem by adding the boost lib directory to the library path:

export LD_LIBRARY_PATH=/home/export/apps/xssp/boost_1_72_0/build/lib:$LD_LIBRARY_PATH

My guess is that the second problem is caused by using the wrong boost headers: /usr/include/boost/ instead of /home/export/apps/xssp/boost_1_72_0/build/include. I fixed it by using --with-boost instead:

./configure --with-boost=/home/export/apps/xssp/boost_1_72_0/build

Then I ran make clean and then make.

I hope this fixes it for you also.

from hssp.

traverbrad avatar traverbrad commented on August 14, 2024

I did what you suggested and I'm now getting these errors:

/home/export/apps/xssp/boost_1_72_0/build/include/boost/iostreams/detail/functional.hpp:41:93: error: extra ‘;’ [-Werror=pedantic]
BOOST_DELETED_FUNCTION(device_close_operation& operator=(const device_close_operation&));

Is it possible that Boost 1.72 is too new?

from hssp.

cbaakman avatar cbaakman commented on August 14, 2024

@traverbrad I repeated the hssp build with boost 1.72. This worked fine for me.

In your error message I see that the error occurs within the boost header itself, not in the hssp code.

Unfortunately, my knowledge about the boost library is not sufficient to say anything about this error.

I think you should open a new issue about this in the boost repository:
https://github.com/boostorg/boost

Perhaps those people can help you further.

from hssp.

jfloresc avatar jfloresc commented on August 14, 2024

I had similar problems compiling with boost/1.62. I was able to compile the program by adding the following to the Makefile's variable AM_CPPFLAGS:

Wno-unused-but-set-variable \
Wno-unused-parameter \
Wno-unused-variable \
Wno-unused-local-typedefs \
Wno-deprecated-declarations \
Wno-overflow \

from hssp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.