Hi, all, Thanks for your sincerely help, and i understand it clearly now. ( ^_^ )
Best regards, Chao J. Caleb Wherry wrote > (Shameless plug ahead) > > If you want to see a working example of what I said above, you can check > out my ExampleCMakeProject: > > https://github.com/calebwherry/example-cmake-project > > It is currently being built and tested on TravisCI (Linux + Mac [GGC5 and > Clang3.7]) and Appveyor (Windows [VS2015]) and provides a simple example > of > how to write/structure CMake for cross-platform C/C++ projects. You can > ignore the python wrapper if you want, it just makes working with the > CMake > exe and system builds easier (calculates core counts, creates directories > for build, nicer CLI options, etc) since I find the options to CMake to be > very... verbose. > > The POST_BUILD example is here: > > https://github.com/calebwherry/example-cmake-project/blob/master/src/app/test-app/CMakeLists.txt > > If you really are looking to get a one-off project working, Decker's > recommendation about PATH modification is easiest. It's just not something > I think is viable in the long run and doesn't work as an actual solution > to > the problem if you are trying to solve it for many projects. > > -Caleb > > On Mon, Apr 25, 2016 at 9:01 PM, Chaos Zhang < > zcsd2012@ > > wrote: > >> Hi, >> >> I faced this problem when i try built a shared lib and linked it on >> windows. The structure of my project as below: >> -test_dir/ >> -sub_hello/ >> CMakeLists.txt >> hello.c >> -top/ >> main.c >> CMakeLists.txt >> CMakeLists.txt >> >> The content of each file: >> ①test_dir/CMakeLists.txt: >> PROJECT(TESTLIB) >> add_subdirectory(sub_hello sub_hello) >> add_subdirectory(top top) >> >> ②test_dir/sub_hello/CMakeLists.txt: >> message("message from sub_hello") >> add_library(hello_lib SHARED hello.c) >> >> ③test_dir/top/CMakeLists.txt: >> include_directories(../sub_hello) >> add_executable(main main.c) >> target_link_libraries(main hello_lib) >> >> ④test_dir/sub_hello/hello.c: >> #include > <stdio.h> >> void HelloFunc() >> { >> printf("###hello###\n"); >> } >> >> ⑤test_dir/top/main.c: >> int main() >> { >> HelloFunc(); >> return 0; >> } >> >> After i cmake this project, generated .sln and .proj files, then i built >> it >> and i get an error in vs: >> >> Error LNK1104 can't open file "..\sub_hello\Debug\hello_lib.lib" >> >> In folder ..\sub_hello\Debug\ , there was not a hello_lib.lib existed. >> Then i look thorough and found a solution: >> >> Add "set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS YES)" in file >> test_dir/sub_hello/hello.c >> >> Then i built this solution again, this time it success, and hello_lib.lib >> and main.exe was generated. But when i try to run main.exe, an error >> occured: "lose hello_lib.dll". And i moved hello_lib.dll into the folder >> of >> main.exe, and it worked well. >> >> There are two questions i could not figure out: >> ①Is this "..\sub_hello\Debug\hello_lib.lib" associates with >> "..\sub_hello\Debug\hello_lib.dll"? For windows can not use .dll >> directly, >> and use a .lib to record the .dll's entrance and location. >> ②How to solve the problem of main.exe can not find .dll file. >> >> Best regards, >> Chao Zhang >> >> >> >> >> >> -- >> View this message in context: >> http://cmake.3232098.n2.nabble.com/How-to-link-shared-lib-on-windows-visual-studio-2014-tp7593346.html >> Sent from the CMake mailing list archive at Nabble.com. >> -- >> >> 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 > > > > > -- > J. Caleb Wherry > *Scientific Software Engineer* > > <http://www.calebwherry.com> > http://www.calebwherry.com > +1 (615) 708-5651 > calebwherry@ > > -- > > 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 -- View this message in context: http://cmake.3232098.n2.nabble.com/How-to-link-shared-lib-on-windows-visual-studio-2014-tp7593346p7593361.html Sent from the CMake mailing list archive at Nabble.com. -- 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